1WOLF_ROOT = ../..
2MQX_ROOT = $(WOLF_ROOT)/../../../Freescale/Freescale_MQX_4_1/
3CC       = arm-none-eabi-gcc
4AR		 = arm-none-eabi-ar
5
6WOLFLIB  = ./libwolfssl.a
7MQXLIB   =
8
9OPTIMIZE = -O2
10
11WORNING  = \
12 -Wno-int-to-pointer-cast\
13 -Wno-incompatible-pointer-types\
14 -Wno-discarded-qualifiers\
15 -Wno-int-conversion\
16 -Wno-implicit-function-declaration\
17 -Wno-pointer-to-int-cast
18
19USER_SETTINGS_H = -I./ -DWOLFSSL_USER_SETTINGS
20CFLAGS   = $(OPTIMIZE) -I$(WOLF_ROOT)/. $(USER_SETTINGS_H) $(MQX_INCLUDE) $(WORNING)
21
22MQX_INCLUDE = -I$(MQX_ROOT)/mqx/source/include\
23-I$(MQX_ROOT)/mqx/source/psp/cortex_m\
24-I$(MQX_ROOT)/mqx/source/psp/cortex_a/compiler/gcc_arm\
25-I$(MQX_ROOT)/mqx/source/psp/cortex_m/cpu\
26-I$(MQX_ROOT)/mfs/source/include\
27-I$(MQX_ROOT)/mqx/source/bsp/twrk70f120m\
28-I$(MQX_ROOT)/mqx/source/io/cm\
29-I$(MQX_ROOT)/mqx/source/io/lpm\
30-I$(MQX_ROOT)/mqx/source/io/serial\
31-I$(MQX_ROOT)/mqx/source/io/dma\
32-I$(MQX_ROOT)/mqx/source/io/spi\
33-I$(MQX_ROOT)/mqx/source/io/i2c\
34-I$(MQX_ROOT)/mqx/source/io/io_mem\
35-I$(MQX_ROOT)/mqx/source/io/io_null\
36-I$(MQX_ROOT)/mqx/source/io/enet\
37-I$(MQX_ROOT)/mqx/source/io/enet/macnet\
38-I$(MQX_ROOT)/mqx/source/io/lwgpio\
39-I$(MQX_ROOT)/mqx/source/io/gpio\
40-I$(MQX_ROOT)/mqx/source/io/gpio/kgpio\
41-I$(MQX_ROOT)/mqx/source/io/esdhc\
42-I$(MQX_ROOT)/mqx/source/io/sdcard\
43-I$(MQX_ROOT)/mqx/source/io/sdcard/sdcard_spi\
44-I$(MQX_ROOT)/mqx/source/io/sdcard/sdcard_esdhc\
45-I$(MQX_ROOT)/mqx/source/io/pccard\
46-I$(MQX_ROOT)/mqx/source/io/pcflash\
47-I$(MQX_ROOT)/mqx/source/io/adc/kadc\
48-I$(MQX_ROOT)/mqx/source/io/adc\
49-I$(MQX_ROOT)/mqx/source/io/lwadc\
50-I$(MQX_ROOT)/mqx/source/io/flashx\
51-I$(MQX_ROOT)/mqx/source/io/flashx/freescale\
52-I$(MQX_ROOT)/mqx/source/io/hwtimer\
53-I$(MQX_ROOT)/mqx/source/io/rtc\
54-I$(MQX_ROOT)/mqx/source/io/debug\
55-I$(MQX_ROOT)/mqx/source/io/tchres\
56-I$(MQX_ROOT)/mqx/source/io/nandflash\
57-I$(MQX_ROOT)/mqx/source/io/timer\
58-I$(MQX_ROOT)/mqx/source/io/usb\
59-I$(MQX_ROOT)/mqx/source/io/hmi\
60-I$(MQX_ROOT)/mqx/source/io/sai\
61-I$(MQX_ROOT)/mqx/source/io/rtcs\
62-I$(MQX_ROOT)/rtcs/source/include
63
64OBJ =\
65$(WOLF_ROOT)/src/crl.o\
66$(WOLF_ROOT)/src/internal.o\
67$(WOLF_ROOT)/src/keys.o\
68$(WOLF_ROOT)/src/ocsp.o\
69$(WOLF_ROOT)/src/sniffer.o\
70$(WOLF_ROOT)/src/ssl.o\
71$(WOLF_ROOT)/src/tls13.o\
72$(WOLF_ROOT)/src/tls.o\
73$(WOLF_ROOT)/src/wolfio.o\
74$(WOLF_ROOT)/wolfcrypt/src/aes.o\
75$(WOLF_ROOT)/wolfcrypt/src/arc4.o\
76$(WOLF_ROOT)/wolfcrypt/src/asm.o\
77$(WOLF_ROOT)/wolfcrypt/src/asn.o\
78$(WOLF_ROOT)/wolfcrypt/src/blake2b.o\
79$(WOLF_ROOT)/wolfcrypt/src/blake2s.o\
80$(WOLF_ROOT)/wolfcrypt/src/camellia.o\
81$(WOLF_ROOT)/wolfcrypt/src/chacha20_poly1305.o\
82$(WOLF_ROOT)/wolfcrypt/src/chacha.o\
83$(WOLF_ROOT)/wolfcrypt/src/cmac.o\
84$(WOLF_ROOT)/wolfcrypt/src/coding.o\
85$(WOLF_ROOT)/wolfcrypt/src/compress.o\
86$(WOLF_ROOT)/wolfcrypt/src/cpuid.o\
87$(WOLF_ROOT)/wolfcrypt/src/cryptocb.o\
88$(WOLF_ROOT)/wolfcrypt/src/curve25519.o\
89$(WOLF_ROOT)/wolfcrypt/src/des3.o\
90$(WOLF_ROOT)/wolfcrypt/src/dh.o\
91$(WOLF_ROOT)/wolfcrypt/src/dsa.o\
92$(WOLF_ROOT)/wolfcrypt/src/ecc.o\
93$(WOLF_ROOT)/wolfcrypt/src/ecc_fp.o\
94$(WOLF_ROOT)/wolfcrypt/src/ed25519.o\
95$(WOLF_ROOT)/wolfcrypt/src/error.o\
96$(WOLF_ROOT)/wolfcrypt/src/fe_low_mem.o\
97$(WOLF_ROOT)/wolfcrypt/src/fe_operations.o\
98$(WOLF_ROOT)/wolfcrypt/src/ge_low_mem.o\
99$(WOLF_ROOT)/wolfcrypt/src/ge_operations.o\
100$(WOLF_ROOT)/wolfcrypt/src/hash.o\
101$(WOLF_ROOT)/wolfcrypt/src/hc128.o\
102$(WOLF_ROOT)/wolfcrypt/src/hmac.o\
103$(WOLF_ROOT)/wolfcrypt/src/idea.o\
104$(WOLF_ROOT)/wolfcrypt/src/integer.o\
105$(WOLF_ROOT)/wolfcrypt/src/logging.o\
106$(WOLF_ROOT)/wolfcrypt/src/md2.o\
107$(WOLF_ROOT)/wolfcrypt/src/md4.o\
108$(WOLF_ROOT)/wolfcrypt/src/md5.o\
109$(WOLF_ROOT)/wolfcrypt/src/memory.o\
110$(WOLF_ROOT)/wolfcrypt/src/pkcs12.o\
111$(WOLF_ROOT)/wolfcrypt/src/pkcs7.o\
112$(WOLF_ROOT)/wolfcrypt/src/poly1305.o\
113$(WOLF_ROOT)/wolfcrypt/src/pwdbased.o\
114$(WOLF_ROOT)/wolfcrypt/src/rabbit.o\
115$(WOLF_ROOT)/wolfcrypt/src/random.o\
116$(WOLF_ROOT)/wolfcrypt/src/ripemd.o\
117$(WOLF_ROOT)/wolfcrypt/src/rsa.o\
118$(WOLF_ROOT)/wolfcrypt/src/sha256.o\
119$(WOLF_ROOT)/wolfcrypt/src/sha3.o\
120$(WOLF_ROOT)/wolfcrypt/src/sha512.o\
121$(WOLF_ROOT)/wolfcrypt/src/sha.o\
122$(WOLF_ROOT)/wolfcrypt/src/signature.o\
123$(WOLF_ROOT)/wolfcrypt/src/sp_arm32.o\
124$(WOLF_ROOT)/wolfcrypt/src/sp_arm64.o\
125$(WOLF_ROOT)/wolfcrypt/src/sp_armthumb.o\
126$(WOLF_ROOT)/wolfcrypt/src/sp_c32.o\
127$(WOLF_ROOT)/wolfcrypt/src/sp_c64.o\
128$(WOLF_ROOT)/wolfcrypt/src/sp_cortexm.o\
129$(WOLF_ROOT)/wolfcrypt/src/sp_int.o\
130$(WOLF_ROOT)/wolfcrypt/src/sp_x86_64.o\
131$(WOLF_ROOT)/wolfcrypt/src/srp.o\
132$(WOLF_ROOT)/wolfcrypt/src/tfm.o\
133$(WOLF_ROOT)/wolfcrypt/src/wc_encrypt.o\
134$(WOLF_ROOT)/wolfcrypt/src/wc_pkcs11.o\
135$(WOLF_ROOT)/wolfcrypt/src/wc_port.o\
136$(WOLF_ROOT)/wolfcrypt/src/wolfevent.o\
137$(WOLF_ROOT)/wolfcrypt/src/wolfmath.o
138
139
140all	: wolfssllib client server test benchmark
141
142wolfssllib	: $(OBJ)
143	$(AR) r $(WOLFLIB) $(OBJ)
144test	: wolfssllib ./user_settings.h
145	$(CC) -o test $(CFLAGS) $(WOLF_ROOT)/wolfcrypt/test/test.c $(WOLFLIB) $(MQXLIB)
146benchmark	: wolfssllib ./user_settings.h
147	$(CC)  -o benchmark $(CFLAGS)  $(WOLF_ROOT)/wolfcrypt/benchmark/benchmark.c $(WOLFLIB) $(WOLFLIB) $(MQXLIB)
148server	:  wolfssllib ./user_settings.h
149	$(CC)  -o server $(CFLAGS)  $(WOLF_ROOT)/IDE/MQX/server-tls.c $(WOLFLIB) $(MQXLIB)
150client  :  wolfssllib ./user_settings.h
151	$(CC)  -o client $(CFLAGS) $(WOLF_ROOT)/IDE/MQX/client-tls.c $(WOLFLIB) $(MQXLIB)
152clean	:
153	rm $(OBJ) $(WOLFLIB)
154