goahead-linux-static.mk 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785
  1. #
  2. # goahead-linux-static.mk -- Makefile to build Embedthis GoAhead Community Edition for linux
  3. #
  4. NAME := goahead
  5. VERSION := 5.1.0
  6. PROFILE ?= static
  7. ARCH ?= $(shell uname -m | sed 's/i.86/x86/;s/x86_64/x64/;s/arm.*/arm/;s/mips.*/mips/')
  8. CC_ARCH ?= $(shell echo $(ARCH) | sed 's/x86/i686/;s/x64/x86_64/')
  9. OS ?= linux
  10. CC ?= gcc
  11. AR ?= ar
  12. CONFIG ?= $(OS)-$(ARCH)-$(PROFILE)
  13. BUILD ?= build/$(CONFIG)
  14. LBIN ?= $(BUILD)/bin
  15. PATH := $(LBIN):$(PATH)
  16. ME_COM_COMPILER ?= 1
  17. ME_COM_LIB ?= 1
  18. ME_COM_MATRIXSSL ?= 0
  19. ME_COM_MBEDTLS ?= 1
  20. ME_COM_NANOSSL ?= 0
  21. ME_COM_OPENSSL ?= 0
  22. ME_COM_OSDEP ?= 1
  23. ME_COM_SSL ?= 1
  24. ME_COM_VXWORKS ?= 0
  25. ME_COM_OPENSSL_PATH ?= "/path/to/openssl"
  26. ifeq ($(ME_COM_LIB),1)
  27. ME_COM_COMPILER := 1
  28. endif
  29. ifeq ($(ME_COM_MBEDTLS),1)
  30. ME_COM_SSL := 1
  31. endif
  32. ifeq ($(ME_COM_OPENSSL),1)
  33. ME_COM_SSL := 1
  34. endif
  35. #CFLAGS += -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Wl,-z,relro,-z,now -Wl,--as-needed -Wl,--no-copy-dt-needed-entries -Wl,-z,noexecstatck -Wl,-z,noexecheap -pie -fPIE -w
  36. DFLAGS += $(patsubst %,-D%,$(filter ME_%,$(MAKEFLAGS))) -DME_COM_COMPILER=$(ME_COM_COMPILER) -DME_COM_LIB=$(ME_COM_LIB) -DME_COM_MATRIXSSL=$(ME_COM_MATRIXSSL) -DME_COM_MBEDTLS=$(ME_COM_MBEDTLS) -DME_COM_NANOSSL=$(ME_COM_NANOSSL) -DME_COM_OPENSSL=$(ME_COM_OPENSSL) -DME_COM_OSDEP=$(ME_COM_OSDEP) -DME_COM_SSL=$(ME_COM_SSL) -DME_COM_VXWORKS=$(ME_COM_VXWORKS)
  37. IFLAGS += "-I$(BUILD)/inc"
  38. LDFLAGS +=
  39. LIBPATHS += -L$(BUILD)/bin
  40. LIBS += -lrt -lpthread -lm #-ldl
  41. DEBUG ?= debug
  42. CFLAGS-debug ?= -g
  43. DFLAGS-debug ?= -DME_DEBUG
  44. LDFLAGS-debug ?= -g
  45. DFLAGS-release ?=
  46. CFLAGS-release ?= -O2
  47. LDFLAGS-release ?=
  48. CFLAGS += $(CFLAGS-$(DEBUG))
  49. DFLAGS += $(DFLAGS-$(DEBUG))
  50. LDFLAGS += $(LDFLAGS-$(DEBUG))
  51. ME_ROOT_PREFIX ?=
  52. ME_BASE_PREFIX ?= $(ME_ROOT_PREFIX)/usr/local
  53. ME_DATA_PREFIX ?= $(ME_ROOT_PREFIX)/
  54. ME_STATE_PREFIX ?= $(ME_ROOT_PREFIX)/var
  55. ME_APP_PREFIX ?= $(ME_BASE_PREFIX)/lib/$(NAME)
  56. ME_VAPP_PREFIX ?= $(ME_APP_PREFIX)/$(VERSION)
  57. ME_BIN_PREFIX ?= $(ME_ROOT_PREFIX)/usr/local/bin
  58. ME_INC_PREFIX ?= $(ME_ROOT_PREFIX)/usr/local/include
  59. ME_LIB_PREFIX ?= $(ME_ROOT_PREFIX)/usr/local/lib
  60. ME_MAN_PREFIX ?= $(ME_ROOT_PREFIX)/usr/local/share/man
  61. ME_SBIN_PREFIX ?= $(ME_ROOT_PREFIX)/usr/local/sbin
  62. ME_ETC_PREFIX ?= $(ME_ROOT_PREFIX)/etc/$(NAME)
  63. ME_WEB_PREFIX ?= $(ME_ROOT_PREFIX)/var/www/$(NAME)
  64. ME_LOG_PREFIX ?= $(ME_ROOT_PREFIX)/var/log/$(NAME)
  65. ME_SPOOL_PREFIX ?= $(ME_ROOT_PREFIX)/var/spool/$(NAME)
  66. ME_CACHE_PREFIX ?= $(ME_ROOT_PREFIX)/var/spool/$(NAME)/cache
  67. ME_SRC_PREFIX ?= $(ME_ROOT_PREFIX)$(NAME)-$(VERSION)
  68. TARGETS += $(BUILD)/bin/goahead
  69. TARGETS += $(BUILD)/bin/goahead-test
  70. TARGETS += $(BUILD)/bin/gopass
  71. unexport CDPATH
  72. ifndef SHOW
  73. .SILENT:
  74. endif
  75. all build compile: prep $(TARGETS)
  76. .PHONY: prep
  77. prep:
  78. @echo " [Info] Use "make SHOW=1" to trace executed commands."
  79. @if [ "$(CONFIG)" = "" ] ; then echo WARNING: CONFIG not set ; exit 255 ; fi
  80. @if [ "$(ME_APP_PREFIX)" = "" ] ; then echo WARNING: ME_APP_PREFIX not set ; exit 255 ; fi
  81. @[ ! -x $(BUILD)/bin ] && mkdir -p $(BUILD)/bin; true
  82. @[ ! -x $(BUILD)/inc ] && mkdir -p $(BUILD)/inc; true
  83. @[ ! -x $(BUILD)/obj ] && mkdir -p $(BUILD)/obj; true
  84. @[ ! -f $(BUILD)/inc/me.h ] && cp projects/goahead-linux-static-me.h $(BUILD)/inc/me.h ; true
  85. @if ! diff $(BUILD)/inc/me.h projects/goahead-linux-static-me.h >/dev/null ; then\
  86. cp projects/goahead-linux-static-me.h $(BUILD)/inc/me.h ; \
  87. fi; true
  88. @if [ -f "$(BUILD)/.makeflags" ] ; then \
  89. if [ "$(MAKEFLAGS)" != "`cat $(BUILD)/.makeflags`" ] ; then \
  90. echo " [Warning] Make flags have changed since the last build" ; \
  91. echo " [Warning] Previous build command: "`cat $(BUILD)/.makeflags`"" ; \
  92. fi ; \
  93. fi
  94. @echo "$(MAKEFLAGS)" >$(BUILD)/.makeflags
  95. clean:
  96. rm -f "$(BUILD)/obj/action.o"
  97. rm -f "$(BUILD)/obj/alloc.o"
  98. rm -f "$(BUILD)/obj/auth.o"
  99. rm -f "$(BUILD)/obj/cgi.o"
  100. rm -f "$(BUILD)/obj/cgitest.o"
  101. rm -f "$(BUILD)/obj/crypt.o"
  102. rm -f "$(BUILD)/obj/file.o"
  103. rm -f "$(BUILD)/obj/fs.o"
  104. rm -f "$(BUILD)/obj/goahead-mbedtls.o"
  105. rm -f "$(BUILD)/obj/goahead-openssl.o"
  106. rm -f "$(BUILD)/obj/goahead.o"
  107. rm -f "$(BUILD)/obj/gopass.o"
  108. rm -f "$(BUILD)/obj/http.o"
  109. rm -f "$(BUILD)/obj/js.o"
  110. rm -f "$(BUILD)/obj/jst.o"
  111. rm -f "$(BUILD)/obj/mbedtls.o"
  112. rm -f "$(BUILD)/obj/options.o"
  113. rm -f "$(BUILD)/obj/osdep.o"
  114. rm -f "$(BUILD)/obj/rom.o"
  115. rm -f "$(BUILD)/obj/route.o"
  116. rm -f "$(BUILD)/obj/runtime.o"
  117. rm -f "$(BUILD)/obj/socket.o"
  118. rm -f "$(BUILD)/obj/test.o"
  119. rm -f "$(BUILD)/obj/time.o"
  120. rm -f "$(BUILD)/obj/upload.o"
  121. rm -f "$(BUILD)/bin/goahead"
  122. rm -f "$(BUILD)/bin/goahead-test"
  123. rm -f "$(BUILD)/bin/gopass"
  124. rm -f "$(BUILD)/.install-certs-modified"
  125. rm -f "$(BUILD)/bin/libgo.a"
  126. rm -f "$(BUILD)/bin/libgoahead-mbedtls.a"
  127. rm -f "$(BUILD)/bin/libmbedtls.a"
  128. clobber: clean
  129. rm -fr ./$(BUILD)
  130. #
  131. # embedtls.h
  132. #
  133. DEPS_1 += src/mbedtls/embedtls.h
  134. $(BUILD)/inc/embedtls.h: $(DEPS_1)
  135. @echo ' [Copy] $(BUILD)/inc/embedtls.h'
  136. mkdir -p "$(BUILD)/inc"
  137. cp src/mbedtls/embedtls.h $(BUILD)/inc/embedtls.h
  138. #
  139. # me.h
  140. #
  141. $(BUILD)/inc/me.h: $(DEPS_2)
  142. #
  143. # osdep.h
  144. #
  145. DEPS_3 += src/osdep/osdep.h
  146. DEPS_3 += $(BUILD)/inc/me.h
  147. $(BUILD)/inc/osdep.h: $(DEPS_3)
  148. @echo ' [Copy] $(BUILD)/inc/osdep.h'
  149. mkdir -p "$(BUILD)/inc"
  150. cp src/osdep/osdep.h $(BUILD)/inc/osdep.h
  151. #
  152. # goahead.h
  153. #
  154. DEPS_4 += src/goahead.h
  155. DEPS_4 += $(BUILD)/inc/me.h
  156. DEPS_4 += $(BUILD)/inc/osdep.h
  157. $(BUILD)/inc/goahead.h: $(DEPS_4)
  158. @echo ' [Copy] $(BUILD)/inc/goahead.h'
  159. mkdir -p "$(BUILD)/inc"
  160. cp src/goahead.h $(BUILD)/inc/goahead.h
  161. #
  162. # js.h
  163. #
  164. DEPS_5 += src/js.h
  165. DEPS_5 += $(BUILD)/inc/goahead.h
  166. $(BUILD)/inc/js.h: $(DEPS_5)
  167. @echo ' [Copy] $(BUILD)/inc/js.h'
  168. mkdir -p "$(BUILD)/inc"
  169. cp src/js.h $(BUILD)/inc/js.h
  170. #
  171. # mbedtls.h
  172. #
  173. DEPS_6 += src/mbedtls/mbedtls.h
  174. $(BUILD)/inc/mbedtls.h: $(DEPS_6)
  175. @echo ' [Copy] $(BUILD)/inc/mbedtls.h'
  176. mkdir -p "$(BUILD)/inc"
  177. cp src/mbedtls/mbedtls.h $(BUILD)/inc/mbedtls.h
  178. #
  179. # action.o
  180. #
  181. DEPS_7 += $(BUILD)/inc/goahead.h
  182. $(BUILD)/obj/action.o: \
  183. src/action.c $(DEPS_7)
  184. @echo ' [Compile] $(BUILD)/obj/action.o'
  185. $(CC) -c -o $(BUILD)/obj/action.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/action.c
  186. #
  187. # alloc.o
  188. #
  189. DEPS_8 += $(BUILD)/inc/goahead.h
  190. $(BUILD)/obj/alloc.o: \
  191. src/alloc.c $(DEPS_8)
  192. @echo ' [Compile] $(BUILD)/obj/alloc.o'
  193. $(CC) -c -o $(BUILD)/obj/alloc.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/alloc.c
  194. #
  195. # auth.o
  196. #
  197. DEPS_9 += $(BUILD)/inc/goahead.h
  198. $(BUILD)/obj/auth.o: \
  199. src/auth.c $(DEPS_9)
  200. @echo ' [Compile] $(BUILD)/obj/auth.o'
  201. $(CC) -c -o $(BUILD)/obj/auth.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/auth.c
  202. #
  203. # cgi.o
  204. #
  205. DEPS_10 += $(BUILD)/inc/goahead.h
  206. $(BUILD)/obj/cgi.o: \
  207. src/cgi.c $(DEPS_10)
  208. @echo ' [Compile] $(BUILD)/obj/cgi.o'
  209. $(CC) -c -o $(BUILD)/obj/cgi.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/cgi.c
  210. #
  211. # cgitest.o
  212. #
  213. $(BUILD)/obj/cgitest.o: \
  214. test/cgitest.c $(DEPS_11)
  215. @echo ' [Compile] $(BUILD)/obj/cgitest.o'
  216. $(CC) -c -o $(BUILD)/obj/cgitest.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) $(IFLAGS) test/cgitest.c
  217. #
  218. # crypt.o
  219. #
  220. DEPS_12 += $(BUILD)/inc/goahead.h
  221. $(BUILD)/obj/crypt.o: \
  222. src/crypt.c $(DEPS_12)
  223. @echo ' [Compile] $(BUILD)/obj/crypt.o'
  224. $(CC) -c -o $(BUILD)/obj/crypt.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/crypt.c
  225. #
  226. # file.o
  227. #
  228. DEPS_13 += $(BUILD)/inc/goahead.h
  229. $(BUILD)/obj/file.o: \
  230. src/file.c $(DEPS_13)
  231. @echo ' [Compile] $(BUILD)/obj/file.o'
  232. $(CC) -c -o $(BUILD)/obj/file.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/file.c
  233. #
  234. # fs.o
  235. #
  236. DEPS_14 += $(BUILD)/inc/goahead.h
  237. $(BUILD)/obj/fs.o: \
  238. src/fs.c $(DEPS_14)
  239. @echo ' [Compile] $(BUILD)/obj/fs.o'
  240. $(CC) -c -o $(BUILD)/obj/fs.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/fs.c
  241. #
  242. # goahead-mbedtls.o
  243. #
  244. DEPS_15 += $(BUILD)/inc/goahead.h
  245. $(BUILD)/obj/goahead-mbedtls.o: \
  246. src/goahead-mbedtls/goahead-mbedtls.c $(DEPS_15)
  247. @echo ' [Compile] $(BUILD)/obj/goahead-mbedtls.o'
  248. $(CC) -c -o $(BUILD)/obj/goahead-mbedtls.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" $(IFLAGS) src/goahead-mbedtls/goahead-mbedtls.c
  249. #
  250. # goahead-openssl.o
  251. #
  252. DEPS_16 += $(BUILD)/inc/goahead.h
  253. $(BUILD)/obj/goahead-openssl.o: \
  254. src/goahead-openssl/goahead-openssl.c $(DEPS_16)
  255. @echo ' [Compile] $(BUILD)/obj/goahead-openssl.o'
  256. $(CC) -c -o $(BUILD)/obj/goahead-openssl.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) $(IFLAGS) "-I$(BUILD)/inc" "-I$(ME_COM_OPENSSL_PATH)/include" src/goahead-openssl/goahead-openssl.c
  257. #
  258. # goahead.o
  259. #
  260. DEPS_17 += $(BUILD)/inc/goahead.h
  261. $(BUILD)/obj/goahead.o: \
  262. src/goahead.c $(DEPS_17)
  263. @echo ' [Compile] $(BUILD)/obj/goahead.o'
  264. $(CC) -c -o $(BUILD)/obj/goahead.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/goahead.c
  265. #
  266. # gopass.o
  267. #
  268. DEPS_18 += $(BUILD)/inc/goahead.h
  269. $(BUILD)/obj/gopass.o: \
  270. src/utils/gopass.c $(DEPS_18)
  271. @echo ' [Compile] $(BUILD)/obj/gopass.o'
  272. $(CC) -c -o $(BUILD)/obj/gopass.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/utils/gopass.c
  273. #
  274. # http.o
  275. #
  276. DEPS_19 += $(BUILD)/inc/goahead.h
  277. $(BUILD)/obj/http.o: \
  278. src/http.c $(DEPS_19)
  279. @echo ' [Compile] $(BUILD)/obj/http.o'
  280. $(CC) -c -o $(BUILD)/obj/http.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/http.c
  281. #
  282. # js.o
  283. #
  284. DEPS_20 += $(BUILD)/inc/js.h
  285. $(BUILD)/obj/js.o: \
  286. src/js.c $(DEPS_20)
  287. @echo ' [Compile] $(BUILD)/obj/js.o'
  288. $(CC) -c -o $(BUILD)/obj/js.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/js.c
  289. #
  290. # jst.o
  291. #
  292. DEPS_21 += $(BUILD)/inc/goahead.h
  293. DEPS_21 += $(BUILD)/inc/js.h
  294. $(BUILD)/obj/jst.o: \
  295. src/jst.c $(DEPS_21)
  296. @echo ' [Compile] $(BUILD)/obj/jst.o'
  297. $(CC) -c -o $(BUILD)/obj/jst.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/jst.c
  298. #
  299. # mbedtls.h
  300. #
  301. src/mbedtls/mbedtls.h: $(DEPS_22)
  302. #
  303. # mbedtls.o
  304. #
  305. DEPS_23 += src/mbedtls/mbedtls.h
  306. $(BUILD)/obj/mbedtls.o: \
  307. src/mbedtls/mbedtls.c $(DEPS_23)
  308. @echo ' [Compile] $(BUILD)/obj/mbedtls.o'
  309. $(CC) -c -o $(BUILD)/obj/mbedtls.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" $(IFLAGS) src/mbedtls/mbedtls.c
  310. #
  311. # options.o
  312. #
  313. DEPS_24 += $(BUILD)/inc/goahead.h
  314. $(BUILD)/obj/options.o: \
  315. src/options.c $(DEPS_24)
  316. @echo ' [Compile] $(BUILD)/obj/options.o'
  317. $(CC) -c -o $(BUILD)/obj/options.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/options.c
  318. #
  319. # osdep.o
  320. #
  321. DEPS_25 += $(BUILD)/inc/goahead.h
  322. $(BUILD)/obj/osdep.o: \
  323. src/osdep.c $(DEPS_25)
  324. @echo ' [Compile] $(BUILD)/obj/osdep.o'
  325. $(CC) -c -o $(BUILD)/obj/osdep.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/osdep.c
  326. #
  327. # rom.o
  328. #
  329. DEPS_26 += $(BUILD)/inc/goahead.h
  330. $(BUILD)/obj/rom.o: \
  331. src/rom.c $(DEPS_26)
  332. @echo ' [Compile] $(BUILD)/obj/rom.o'
  333. $(CC) -c -o $(BUILD)/obj/rom.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/rom.c
  334. #
  335. # route.o
  336. #
  337. DEPS_27 += $(BUILD)/inc/goahead.h
  338. $(BUILD)/obj/route.o: \
  339. src/route.c $(DEPS_27)
  340. @echo ' [Compile] $(BUILD)/obj/route.o'
  341. $(CC) -c -o $(BUILD)/obj/route.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/route.c
  342. #
  343. # runtime.o
  344. #
  345. DEPS_28 += $(BUILD)/inc/goahead.h
  346. $(BUILD)/obj/runtime.o: \
  347. src/runtime.c $(DEPS_28)
  348. @echo ' [Compile] $(BUILD)/obj/runtime.o'
  349. $(CC) -c -o $(BUILD)/obj/runtime.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/runtime.c
  350. #
  351. # socket.o
  352. #
  353. DEPS_29 += $(BUILD)/inc/goahead.h
  354. $(BUILD)/obj/socket.o: \
  355. src/socket.c $(DEPS_29)
  356. @echo ' [Compile] $(BUILD)/obj/socket.o'
  357. $(CC) -c -o $(BUILD)/obj/socket.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/socket.c
  358. #
  359. # test.o
  360. #
  361. DEPS_30 += $(BUILD)/inc/goahead.h
  362. DEPS_30 += $(BUILD)/inc/js.h
  363. $(BUILD)/obj/test.o: \
  364. test/test.c $(DEPS_30)
  365. @echo ' [Compile] $(BUILD)/obj/test.o'
  366. $(CC) -c -o $(BUILD)/obj/test.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" test/test.c
  367. #
  368. # time.o
  369. #
  370. DEPS_31 += $(BUILD)/inc/goahead.h
  371. $(BUILD)/obj/time.o: \
  372. src/time.c $(DEPS_31)
  373. @echo ' [Compile] $(BUILD)/obj/time.o'
  374. $(CC) -c -o $(BUILD)/obj/time.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/time.c
  375. #
  376. # upload.o
  377. #
  378. DEPS_32 += $(BUILD)/inc/goahead.h
  379. $(BUILD)/obj/upload.o: \
  380. src/upload.c $(DEPS_32)
  381. @echo ' [Compile] $(BUILD)/obj/upload.o'
  382. $(CC) -c -o $(BUILD)/obj/upload.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/upload.c
  383. ifeq ($(ME_COM_MBEDTLS),1)
  384. #
  385. # libmbedtls
  386. #
  387. DEPS_33 += $(BUILD)/inc/osdep.h
  388. DEPS_33 += $(BUILD)/inc/embedtls.h
  389. DEPS_33 += $(BUILD)/inc/mbedtls.h
  390. DEPS_33 += $(BUILD)/obj/mbedtls.o
  391. $(BUILD)/bin/libmbedtls.a: $(DEPS_33)
  392. @echo ' [Link] $(BUILD)/bin/libmbedtls.a'
  393. $(AR) -cr $(BUILD)/bin/libmbedtls.a "$(BUILD)/obj/mbedtls.o"
  394. endif
  395. ifeq ($(ME_COM_MBEDTLS),1)
  396. #
  397. # libgoahead-mbedtls
  398. #
  399. DEPS_34 += $(BUILD)/bin/libmbedtls.a
  400. DEPS_34 += $(BUILD)/obj/goahead-mbedtls.o
  401. $(BUILD)/bin/libgoahead-mbedtls.a: $(DEPS_34)
  402. @echo ' [Link] $(BUILD)/bin/libgoahead-mbedtls.a'
  403. $(AR) -cr $(BUILD)/bin/libgoahead-mbedtls.a "$(BUILD)/obj/goahead-mbedtls.o"
  404. endif
  405. ifeq ($(ME_COM_OPENSSL),1)
  406. #
  407. # libgoahead-openssl
  408. #
  409. DEPS_35 += $(BUILD)/obj/goahead-openssl.o
  410. $(BUILD)/bin/libgoahead-openssl.a: $(DEPS_35)
  411. @echo ' [Link] $(BUILD)/bin/libgoahead-openssl.a'
  412. $(AR) -cr $(BUILD)/bin/libgoahead-openssl.a "$(BUILD)/obj/goahead-openssl.o"
  413. endif
  414. #
  415. # libgo
  416. #
  417. DEPS_36 += $(BUILD)/inc/osdep.h
  418. ifeq ($(ME_COM_MBEDTLS),1)
  419. DEPS_36 += $(BUILD)/bin/libgoahead-mbedtls.a
  420. endif
  421. ifeq ($(ME_COM_OPENSSL),1)
  422. DEPS_36 += $(BUILD)/bin/libgoahead-openssl.a
  423. endif
  424. DEPS_36 += $(BUILD)/inc/goahead.h
  425. DEPS_36 += $(BUILD)/inc/js.h
  426. DEPS_36 += $(BUILD)/obj/action.o
  427. DEPS_36 += $(BUILD)/obj/alloc.o
  428. DEPS_36 += $(BUILD)/obj/auth.o
  429. DEPS_36 += $(BUILD)/obj/cgi.o
  430. DEPS_36 += $(BUILD)/obj/crypt.o
  431. DEPS_36 += $(BUILD)/obj/file.o
  432. DEPS_36 += $(BUILD)/obj/fs.o
  433. DEPS_36 += $(BUILD)/obj/http.o
  434. DEPS_36 += $(BUILD)/obj/js.o
  435. DEPS_36 += $(BUILD)/obj/jst.o
  436. DEPS_36 += $(BUILD)/obj/options.o
  437. DEPS_36 += $(BUILD)/obj/osdep.o
  438. DEPS_36 += $(BUILD)/obj/rom.o
  439. DEPS_36 += $(BUILD)/obj/route.o
  440. DEPS_36 += $(BUILD)/obj/runtime.o
  441. DEPS_36 += $(BUILD)/obj/socket.o
  442. DEPS_36 += $(BUILD)/obj/time.o
  443. DEPS_36 += $(BUILD)/obj/upload.o
  444. $(BUILD)/bin/libgo.a: $(DEPS_36)
  445. @echo ' [Link] $(BUILD)/bin/libgo.a'
  446. $(AR) -cr $(BUILD)/bin/libgo.a "$(BUILD)/obj/action.o" "$(BUILD)/obj/alloc.o" "$(BUILD)/obj/auth.o" "$(BUILD)/obj/cgi.o" "$(BUILD)/obj/crypt.o" "$(BUILD)/obj/file.o" "$(BUILD)/obj/fs.o" "$(BUILD)/obj/http.o" "$(BUILD)/obj/js.o" "$(BUILD)/obj/jst.o" "$(BUILD)/obj/options.o" "$(BUILD)/obj/osdep.o" "$(BUILD)/obj/rom.o" "$(BUILD)/obj/route.o" "$(BUILD)/obj/runtime.o" "$(BUILD)/obj/socket.o" "$(BUILD)/obj/time.o" "$(BUILD)/obj/upload.o"
  447. #
  448. # install-certs
  449. #
  450. DEPS_37 += src/certs/samples/ca.crt
  451. DEPS_37 += src/certs/samples/ca.key
  452. DEPS_37 += src/certs/samples/ec.crt
  453. DEPS_37 += src/certs/samples/ec.key
  454. DEPS_37 += src/certs/samples/roots.crt
  455. DEPS_37 += src/certs/samples/self.crt
  456. DEPS_37 += src/certs/samples/self.key
  457. DEPS_37 += src/certs/samples/test.crt
  458. DEPS_37 += src/certs/samples/test.key
  459. $(BUILD)/.install-certs-modified: $(DEPS_37)
  460. @echo ' [Copy] $(BUILD)/bin'
  461. mkdir -p "$(BUILD)/bin"
  462. cp src/certs/samples/ca.crt $(BUILD)/bin/ca.crt
  463. cp src/certs/samples/ca.key $(BUILD)/bin/ca.key
  464. cp src/certs/samples/ec.crt $(BUILD)/bin/ec.crt
  465. cp src/certs/samples/ec.key $(BUILD)/bin/ec.key
  466. cp src/certs/samples/roots.crt $(BUILD)/bin/roots.crt
  467. cp src/certs/samples/self.crt $(BUILD)/bin/self.crt
  468. cp src/certs/samples/self.key $(BUILD)/bin/self.key
  469. cp src/certs/samples/test.crt $(BUILD)/bin/test.crt
  470. cp src/certs/samples/test.key $(BUILD)/bin/test.key
  471. touch "$(BUILD)/.install-certs-modified"
  472. #
  473. # goahead
  474. #
  475. DEPS_38 += $(BUILD)/bin/libgo.a
  476. DEPS_38 += $(BUILD)/.install-certs-modified
  477. DEPS_38 += $(BUILD)/inc/goahead.h
  478. DEPS_38 += $(BUILD)/inc/js.h
  479. DEPS_38 += $(BUILD)/obj/goahead.o
  480. ifeq ($(ME_COM_MBEDTLS),1)
  481. LIBS_38 += -lmbedtls
  482. endif
  483. ifeq ($(ME_COM_MBEDTLS),1)
  484. LIBS_38 += -lgoahead-mbedtls
  485. endif
  486. ifeq ($(ME_COM_MBEDTLS),1)
  487. LIBS_38 += -lmbedtls
  488. endif
  489. ifeq ($(ME_COM_OPENSSL),1)
  490. LIBS_38 += -lgoahead-openssl
  491. endif
  492. ifeq ($(ME_COM_OPENSSL),1)
  493. ifeq ($(ME_COM_SSL),1)
  494. LIBS_38 += -lssl
  495. LIBPATHS_38 += -L"$(ME_COM_OPENSSL_PATH)"
  496. endif
  497. endif
  498. ifeq ($(ME_COM_OPENSSL),1)
  499. LIBS_38 += -lcrypto
  500. LIBPATHS_38 += -L"$(ME_COM_OPENSSL_PATH)"
  501. endif
  502. LIBS_38 += -lgo
  503. ifeq ($(ME_COM_OPENSSL),1)
  504. LIBS_38 += -lgoahead-openssl
  505. endif
  506. ifeq ($(ME_COM_MBEDTLS),1)
  507. LIBS_38 += -lgoahead-mbedtls
  508. endif
  509. $(BUILD)/bin/goahead: $(DEPS_38)
  510. @echo ' [Link] $(BUILD)/bin/goahead'
  511. $(CC) -o $(BUILD)/bin/goahead $(LDFLAGS) $(LIBPATHS) "$(BUILD)/obj/goahead.o" $(LIBPATHS_38) $(LIBS_38) $(LIBS_38) $(LIBS) $(LIBS)
  512. #
  513. # goahead-test
  514. #
  515. DEPS_39 += $(BUILD)/bin/libgo.a
  516. DEPS_39 += $(BUILD)/.install-certs-modified
  517. DEPS_39 += $(BUILD)/obj/test.o
  518. ifeq ($(ME_COM_MBEDTLS),1)
  519. LIBS_39 += -lmbedtls
  520. endif
  521. ifeq ($(ME_COM_MBEDTLS),1)
  522. LIBS_39 += -lgoahead-mbedtls
  523. endif
  524. ifeq ($(ME_COM_MBEDTLS),1)
  525. LIBS_39 += -lmbedtls
  526. endif
  527. ifeq ($(ME_COM_OPENSSL),1)
  528. LIBS_39 += -lgoahead-openssl
  529. endif
  530. ifeq ($(ME_COM_OPENSSL),1)
  531. ifeq ($(ME_COM_SSL),1)
  532. LIBS_39 += -lssl
  533. LIBPATHS_39 += -L"$(ME_COM_OPENSSL_PATH)"
  534. endif
  535. endif
  536. ifeq ($(ME_COM_OPENSSL),1)
  537. LIBS_39 += -lcrypto
  538. LIBPATHS_39 += -L"$(ME_COM_OPENSSL_PATH)"
  539. endif
  540. LIBS_39 += -lgo
  541. ifeq ($(ME_COM_OPENSSL),1)
  542. LIBS_39 += -lgoahead-openssl
  543. endif
  544. ifeq ($(ME_COM_MBEDTLS),1)
  545. LIBS_39 += -lgoahead-mbedtls
  546. endif
  547. $(BUILD)/bin/goahead-test: $(DEPS_39)
  548. @echo ' [Link] $(BUILD)/bin/goahead-test'
  549. $(CC) -o $(BUILD)/bin/goahead-test $(LDFLAGS) $(LIBPATHS) "$(BUILD)/obj/test.o" $(LIBPATHS_39) $(LIBS_39) $(LIBS_39) $(LIBS) $(LIBS)
  550. #
  551. # gopass
  552. #
  553. DEPS_40 += $(BUILD)/bin/libgo.a
  554. DEPS_40 += $(BUILD)/inc/goahead.h
  555. DEPS_40 += $(BUILD)/inc/js.h
  556. DEPS_40 += $(BUILD)/obj/gopass.o
  557. ifeq ($(ME_COM_MBEDTLS),1)
  558. LIBS_40 += -lmbedtls
  559. endif
  560. ifeq ($(ME_COM_MBEDTLS),1)
  561. LIBS_40 += -lgoahead-mbedtls
  562. endif
  563. ifeq ($(ME_COM_MBEDTLS),1)
  564. LIBS_40 += -lmbedtls
  565. endif
  566. ifeq ($(ME_COM_OPENSSL),1)
  567. LIBS_40 += -lgoahead-openssl
  568. endif
  569. ifeq ($(ME_COM_OPENSSL),1)
  570. ifeq ($(ME_COM_SSL),1)
  571. LIBS_40 += -lssl
  572. LIBPATHS_40 += -L"$(ME_COM_OPENSSL_PATH)"
  573. endif
  574. endif
  575. ifeq ($(ME_COM_OPENSSL),1)
  576. LIBS_40 += -lcrypto
  577. LIBPATHS_40 += -L"$(ME_COM_OPENSSL_PATH)"
  578. endif
  579. LIBS_40 += -lgo
  580. ifeq ($(ME_COM_OPENSSL),1)
  581. LIBS_40 += -lgoahead-openssl
  582. endif
  583. ifeq ($(ME_COM_MBEDTLS),1)
  584. LIBS_40 += -lgoahead-mbedtls
  585. endif
  586. $(BUILD)/bin/gopass: $(DEPS_40)
  587. @echo ' [Link] $(BUILD)/bin/gopass'
  588. $(CC) -o $(BUILD)/bin/gopass $(LDFLAGS) $(LIBPATHS) "$(BUILD)/obj/gopass.o" $(LIBPATHS_40) $(LIBS_40) $(LIBS_40) $(LIBS) $(LIBS)
  589. #
  590. # stop
  591. #
  592. stop: $(DEPS_41)
  593. #
  594. # installBinary
  595. #
  596. installBinary: $(DEPS_42)
  597. mkdir -p "$(ME_APP_PREFIX)" ; \
  598. rm -f "$(ME_APP_PREFIX)/latest" ; \
  599. ln -s "$(VERSION)" "$(ME_APP_PREFIX)/latest" ; \
  600. mkdir -p "$(ME_MAN_PREFIX)/man1" ; \
  601. chmod 755 "$(ME_MAN_PREFIX)/man1" ; \
  602. mkdir -p "$(ME_VAPP_PREFIX)/bin" ; \
  603. cp $(BUILD)/bin/goahead $(ME_VAPP_PREFIX)/bin/goahead ; \
  604. chmod 755 "$(ME_VAPP_PREFIX)/bin/goahead" ; \
  605. mkdir -p "$(ME_BIN_PREFIX)" ; \
  606. rm -f "$(ME_BIN_PREFIX)/goahead" ; \
  607. ln -s "$(ME_VAPP_PREFIX)/bin/goahead" "$(ME_BIN_PREFIX)/goahead" ; \
  608. mkdir -p "$(ME_VAPP_PREFIX)/bin" ; \
  609. cp $(BUILD)/bin/roots.crt $(ME_VAPP_PREFIX)/bin/roots.crt ; \
  610. mkdir -p "$(ME_ETC_PREFIX)" ; \
  611. cp $(BUILD)/bin/self.* $(ME_ETC_PREFIX)/self.* ; \
  612. mkdir -p "$(ME_WEB_PREFIX)" ; \
  613. cp src/web/index.html $(ME_WEB_PREFIX)/index.html ; \
  614. cp src/web/favicon.ico $(ME_WEB_PREFIX)/favicon.ico ; \
  615. mkdir -p "$(ME_ETC_PREFIX)" ; \
  616. cp src/auth.txt $(ME_ETC_PREFIX)/auth.txt ; \
  617. cp src/route.txt $(ME_ETC_PREFIX)/route.txt ; \
  618. mkdir -p "$(ME_VAPP_PREFIX)/doc/man/man1" ; \
  619. cp doc/dist/man/goahead.1 $(ME_VAPP_PREFIX)/doc/man/man1/goahead.1 ; \
  620. mkdir -p "$(ME_MAN_PREFIX)/man1" ; \
  621. rm -f "$(ME_MAN_PREFIX)/man1/goahead.1" ; \
  622. ln -s "$(ME_VAPP_PREFIX)/doc/man/man1/goahead.1" "$(ME_MAN_PREFIX)/man1/goahead.1" ; \
  623. cp doc/dist/man/gopass.1 $(ME_VAPP_PREFIX)/doc/man/man1/gopass.1 ; \
  624. mkdir -p "$(ME_MAN_PREFIX)/man1" ; \
  625. rm -f "$(ME_MAN_PREFIX)/man1/gopass.1" ; \
  626. ln -s "$(ME_VAPP_PREFIX)/doc/man/man1/gopass.1" "$(ME_MAN_PREFIX)/man1/gopass.1" ; \
  627. cp doc/dist/man/webcomp.1 $(ME_VAPP_PREFIX)/doc/man/man1/webcomp.1 ; \
  628. mkdir -p "$(ME_MAN_PREFIX)/man1" ; \
  629. rm -f "$(ME_MAN_PREFIX)/man1/webcomp.1" ; \
  630. ln -s "$(ME_VAPP_PREFIX)/doc/man/man1/webcomp.1" "$(ME_MAN_PREFIX)/man1/webcomp.1"
  631. #
  632. # start
  633. #
  634. start: $(DEPS_43)
  635. #
  636. # install
  637. #
  638. DEPS_44 += stop
  639. DEPS_44 += installBinary
  640. DEPS_44 += start
  641. install: $(DEPS_44)
  642. #
  643. # installPrep
  644. #
  645. installPrep: $(DEPS_45)
  646. if [ "`id -u`" != 0 ] ; \
  647. then echo "Must run as root. Rerun with sudo." ; \
  648. exit 255 ; \
  649. fi
  650. #
  651. # uninstall
  652. #
  653. DEPS_46 += stop
  654. uninstall: $(DEPS_46)
  655. #
  656. # uninstallBinary
  657. #
  658. uninstallBinary: $(DEPS_47)
  659. rm -fr "$(ME_WEB_PREFIX)" ; \
  660. rm -fr "$(ME_VAPP_PREFIX)" ; \
  661. rmdir -p "$(ME_ETC_PREFIX)" 2>/dev/null ; true ; \
  662. rmdir -p "$(ME_WEB_PREFIX)" 2>/dev/null ; true ; \
  663. rm -f "$(ME_APP_PREFIX)/latest" ; \
  664. rmdir -p "$(ME_APP_PREFIX)" 2>/dev/null ; true
  665. #
  666. # version
  667. #
  668. version: $(DEPS_48)
  669. echo $(VERSION)