Makefile 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427
  1. #
  2. # Makefile
  3. #
  4. # The global Makefile for POCO [generated by mkrelease]
  5. #
  6. sinclude config.make
  7. sinclude config.build
  8. POCO_CONFIG_INCLUDED = 1
  9. ifndef POCO_BASE
  10. $(warning WARNING: POCO_BASE is not defined. Assuming current directory.)
  11. export POCO_BASE=$(shell pwd)
  12. endif
  13. ifdef POCO_VERBOSE
  14. $(info POCO_BASE = $(POCO_BASE))
  15. endif
  16. ifndef POCO_BUILD
  17. export POCO_BUILD=$(POCO_BASE)
  18. endif
  19. ifdef POCO_VERBOSE
  20. $(info POCO_BUILD = $(POCO_BUILD))
  21. endif
  22. #
  23. # Determine OS
  24. #
  25. POCO_HOST_OSNAME = $(shell uname)
  26. ifeq ($(findstring CYGWIN,$(POCO_HOST_OSNAME)),CYGWIN)
  27. POCO_HOST_OSNAME = CYGWIN
  28. endif
  29. ifeq ($(findstring MINGW,$(POCO_HOST_OSNAME)),MINGW)
  30. POCO_HOST_OSNAME = MinGW
  31. endif
  32. POCO_HOST_OSARCH ?= $(subst /,-,$(shell uname -m | tr ' ' _))
  33. #
  34. # If POCO_CONFIG is not set, use the OS name as configuration name
  35. #
  36. ifndef POCO_CONFIG
  37. POCO_CONFIG = $(POCO_HOST_OSNAME)
  38. endif
  39. ifdef POCO_VERBOSE
  40. $(info POCO_CONFIG = $(POCO_CONFIG))
  41. endif
  42. #
  43. # Include System Specific Settings
  44. #
  45. include $(POCO_BASE)/build/config/$(POCO_CONFIG)
  46. #
  47. # Determine operating system
  48. #
  49. ifndef POCO_TARGET_OSNAME
  50. OSNAME := $(POCO_HOST_OSNAME)
  51. else
  52. OSNAME := $(POCO_TARGET_OSNAME)
  53. endif
  54. ifdef POCO_VERBOSE
  55. $(info OSNAME = $(OSNAME))
  56. endif
  57. ifndef POCO_TARGET_OSARCH
  58. OSARCH := $(POCO_HOST_OSARCH)
  59. else
  60. OSARCH := $(POCO_TARGET_OSARCH)
  61. endif
  62. ifdef POCO_VERBOSE
  63. $(info OSARCH = $(OSARCH))
  64. endif
  65. .PHONY: poco all libexecs cppunit tests samples cleans clean distclean install uninstall
  66. # TESTS and SAMPLES are set in config.make
  67. poco: libexecs $(if $(TESTS),tests) $(if $(SAMPLES),samples)
  68. all: libexecs tests samples
  69. INSTALLDIR = $(DESTDIR)$(POCO_PREFIX)
  70. COMPONENTS = Foundation Encodings XML JSON Util Net Crypto NetSSL_OpenSSL Data Data/SQLite Data/ODBC Data/MySQL Data/PostgreSQL ActiveRecord ActiveRecord/Compiler Zip PageCompiler PageCompiler/File2Page JWT CppParser PDF MongoDB Redis Prometheus
  71. cppunit:
  72. $(MAKE) -C $(POCO_BASE)/CppUnit
  73. CppUnit-clean:
  74. $(MAKE) -C $(POCO_BASE)/CppUnit clean
  75. install: libexecs
  76. mkdir -p $(INSTALLDIR)/include/Poco
  77. mkdir -p $(INSTALLDIR)/lib
  78. mkdir -p $(INSTALLDIR)/bin
  79. for comp in $(filter-out $(foreach f,$(OMIT),$f%),$(COMPONENTS)) ; do \
  80. if [ -d "$(POCO_BASE)/$$comp/include" ] ; then \
  81. cp -Rf $(POCO_BASE)/$$comp/include/* $(INSTALLDIR)/include/ ; \
  82. fi ; \
  83. if [ -d "$(POCO_BUILD)/$$comp/bin" ] ; then \
  84. find $(POCO_BUILD)/$$comp/bin -perm -700 -type f -exec cp -f {} $(INSTALLDIR)/bin \; ; \
  85. fi ; \
  86. done
  87. ifeq ($(OSNAME), CYGWIN)
  88. find $(POCO_BUILD)/lib/$(OSNAME)/$(OSARCH) -name "cygPoco*" -type f -exec cp -f {} $(INSTALLDIR)/bin \;
  89. find $(POCO_BUILD)/lib/$(OSNAME)/$(OSARCH) -name "cygPoco*" -type l -exec cp -Rf {} $(INSTALLDIR)/bin \;
  90. endif
  91. find $(POCO_BUILD)/lib/$(OSNAME)/$(OSARCH) -name "libPoco*" -type f -exec cp -f {} $(INSTALLDIR)/lib \;
  92. find $(POCO_BUILD)/lib/$(OSNAME)/$(OSARCH) -name "libPoco*" -type l -exec cp -Rf {} $(INSTALLDIR)/lib \;
  93. uninstall:
  94. [ -d $(INSTALLDIR)/include/Poco ] && rm -rf $(INSTALLDIR)/include/Poco || echo "No installed Poco headers found";
  95. [ -d $(INSTALLDIR)/include/CppUnit ] && rm -rf $(INSTALLDIR)/include/CppUnit || echo "No installed CppUnit headers found";
  96. ifeq ($(OSNAME), Cygwin)
  97. find $(INSTALLDIR)/bin -name "cygPoco*" -type f -exec rm -f {} \;
  98. find $(INSTALLDIR)/bin -name "cygPoco*" -type l -exec rm -f {} \;
  99. endif
  100. find $(INSTALLDIR)/lib -name "libPoco*" -type f -exec rm -f {} \;
  101. find $(INSTALLDIR)/lib -name "libPoco*" -type l -exec rm -f {} \;
  102. libexecs = Foundation-libexec Encodings-libexec XML-libexec JSON-libexec Util-libexec Net-libexec Crypto-libexec NetSSL_OpenSSL-libexec Data-libexec Data/SQLite-libexec Data/ODBC-libexec Data/MySQL-libexec Data/PostgreSQL-libexec ActiveRecord-libexec ActiveRecord/Compiler-libexec Zip-libexec JWT-libexec PageCompiler-libexec PageCompiler/File2Page-libexec CppParser-libexec PDF-libexec MongoDB-libexec Redis-libexec Prometheus-libexec
  103. tests = Foundation-tests Encodings-tests XML-tests JSON-tests Util-tests Net-tests Crypto-tests NetSSL_OpenSSL-tests Data-tests Data/SQLite-tests Data/ODBC-tests Data/MySQL-tests Data/PostgreSQL-tests ActiveRecord-tests JWT-tests Zip-tests CppParser-tests PDF-tests MongoDB-tests Redis-tests Prometheus-tests
  104. samples = Foundation-samples Encodings-samples XML-samples JSON-samples Util-samples Net-samples Crypto-samples NetSSL_OpenSSL-samples Data-samples MongoDB-samples Prometheus-samples Zip-samples PageCompiler-samples PDF-samples
  105. cleans = Foundation-clean Encodings-clean XML-clean JSON-clean Util-clean Net-clean Crypto-clean NetSSL_OpenSSL-clean Data-clean Data/SQLite-clean Data/ODBC-clean Data/MySQL-clean Data/PostgreSQL-clean ActiveRecord-clean ActiveRecord/Compiler-clean JWT-clean Zip-clean PageCompiler-clean PageCompiler/File2Page-clean CppParser-clean PDF-clean MongoDB-clean Redis-clean Prometheus-clean
  106. .PHONY: $(libexecs)
  107. .PHONY: $(tests)
  108. .PHONY: $(samples)
  109. .PHONY: $(cleans)
  110. libexecs: $(filter-out $(foreach f,$(OMIT),$f%),$(libexecs))
  111. tests: $(filter-out $(foreach f,$(OMIT),$f%),$(tests))
  112. samples: $(filter-out $(foreach f,$(OMIT),$f%),$(samples))
  113. cleans: $(filter-out $(foreach f,$(OMIT),$f%),$(cleans))
  114. Foundation-libexec:
  115. $(MAKE) -C $(POCO_BASE)/Foundation
  116. Foundation-tests: Foundation-libexec cppunit
  117. $(MAKE) -C $(POCO_BASE)/Foundation/testsuite
  118. Foundation-samples: Foundation-libexec
  119. $(MAKE) -C $(POCO_BASE)/Foundation/samples
  120. Foundation-clean:
  121. $(MAKE) -C $(POCO_BASE)/Foundation clean
  122. $(MAKE) -C $(POCO_BASE)/Foundation/testsuite clean
  123. $(MAKE) -C $(POCO_BASE)/Foundation/samples clean
  124. Encodings-libexec: Foundation-libexec
  125. $(MAKE) -C $(POCO_BASE)/Encodings
  126. Encodings-tests: Encodings-libexec cppunit
  127. $(MAKE) -C $(POCO_BASE)/Encodings/testsuite
  128. Encodings-samples: Encodings-libexec
  129. $(MAKE) -C $(POCO_BASE)/Encodings/samples
  130. Encodings-clean:
  131. $(MAKE) -C $(POCO_BASE)/Encodings clean
  132. $(MAKE) -C $(POCO_BASE)/Encodings/testsuite clean
  133. $(MAKE) -C $(POCO_BASE)/Encodings/samples clean
  134. XML-libexec: Foundation-libexec
  135. $(MAKE) -C $(POCO_BASE)/XML
  136. XML-tests: XML-libexec cppunit
  137. $(MAKE) -C $(POCO_BASE)/XML/testsuite
  138. XML-samples: XML-libexec
  139. $(MAKE) -C $(POCO_BASE)/XML/samples
  140. XML-clean:
  141. $(MAKE) -C $(POCO_BASE)/XML clean
  142. $(MAKE) -C $(POCO_BASE)/XML/testsuite clean
  143. $(MAKE) -C $(POCO_BASE)/XML/samples clean
  144. JSON-libexec: Foundation-libexec
  145. $(MAKE) -C $(POCO_BASE)/JSON
  146. JSON-tests: JSON-libexec cppunit
  147. $(MAKE) -C $(POCO_BASE)/JSON/testsuite
  148. JSON-samples: JSON-libexec
  149. $(MAKE) -C $(POCO_BASE)/JSON/samples
  150. JSON-clean:
  151. $(MAKE) -C $(POCO_BASE)/JSON clean
  152. $(MAKE) -C $(POCO_BASE)/JSON/testsuite clean
  153. $(MAKE) -C $(POCO_BASE)/JSON/samples clean
  154. Util-libexec: Foundation-libexec XML-libexec JSON-libexec
  155. $(MAKE) -C $(POCO_BASE)/Util
  156. Util-tests: Util-libexec cppunit
  157. $(MAKE) -C $(POCO_BASE)/Util/testsuite
  158. Util-samples: Util-libexec
  159. $(MAKE) -C $(POCO_BASE)/Util/samples
  160. Util-clean:
  161. $(MAKE) -C $(POCO_BASE)/Util clean
  162. $(MAKE) -C $(POCO_BASE)/Util/testsuite clean
  163. $(MAKE) -C $(POCO_BASE)/Util/samples clean
  164. Net-libexec: Foundation-libexec
  165. $(MAKE) -C $(POCO_BASE)/Net
  166. Net-tests: Net-libexec cppunit
  167. $(MAKE) -C $(POCO_BASE)/Net/testsuite
  168. Net-samples: Net-libexec Foundation-libexec XML-libexec Util-libexec
  169. $(MAKE) -C $(POCO_BASE)/Net/samples
  170. Net-clean:
  171. $(MAKE) -C $(POCO_BASE)/Net clean
  172. $(MAKE) -C $(POCO_BASE)/Net/testsuite clean
  173. $(MAKE) -C $(POCO_BASE)/Net/samples clean
  174. Crypto-libexec: Foundation-libexec
  175. $(MAKE) -C $(POCO_BASE)/Crypto
  176. Crypto-tests: Crypto-libexec cppunit
  177. $(MAKE) -C $(POCO_BASE)/Crypto/testsuite
  178. Crypto-samples: Crypto-libexec Foundation-libexec Util-libexec
  179. $(MAKE) -C $(POCO_BASE)/Crypto/samples
  180. Crypto-clean:
  181. $(MAKE) -C $(POCO_BASE)/Crypto clean
  182. $(MAKE) -C $(POCO_BASE)/Crypto/testsuite clean
  183. $(MAKE) -C $(POCO_BASE)/Crypto/samples clean
  184. NetSSL_OpenSSL-libexec: Foundation-libexec Net-libexec Util-libexec Crypto-libexec
  185. $(MAKE) -C $(POCO_BASE)/NetSSL_OpenSSL
  186. NetSSL_OpenSSL-tests: NetSSL_OpenSSL-libexec cppunit
  187. $(MAKE) -C $(POCO_BASE)/NetSSL_OpenSSL/testsuite
  188. NetSSL_OpenSSL-samples: NetSSL_OpenSSL-libexec
  189. $(MAKE) -C $(POCO_BASE)/NetSSL_OpenSSL/samples
  190. NetSSL_OpenSSL-clean:
  191. $(MAKE) -C $(POCO_BASE)/NetSSL_OpenSSL clean
  192. $(MAKE) -C $(POCO_BASE)/NetSSL_OpenSSL/testsuite clean
  193. $(MAKE) -C $(POCO_BASE)/NetSSL_OpenSSL/samples clean
  194. Data-libexec: Foundation-libexec
  195. $(MAKE) -C $(POCO_BASE)/Data
  196. DataTest-libexec: Data-libexec
  197. $(MAKE) -C $(POCO_BASE)/Data/DataTest
  198. Data-tests: Data-libexec DataTest-libexec cppunit
  199. $(MAKE) -C $(POCO_BASE)/Data/testsuite
  200. Data-samples: Data-libexec Data-libexec Data/SQLite-libexec Net-libexec
  201. $(MAKE) -C $(POCO_BASE)/Data/samples
  202. Data-clean:
  203. $(MAKE) -C $(POCO_BASE)/Data clean
  204. $(MAKE) -C $(POCO_BASE)/Data/testsuite clean
  205. $(MAKE) -C $(POCO_BASE)/Data/samples clean
  206. Data/SQLite-libexec: Foundation-libexec Data-libexec
  207. $(MAKE) -C $(POCO_BASE)/Data/SQLite
  208. Data/SQLite-tests: Data/SQLite-libexec DataTest-libexec cppunit
  209. $(MAKE) -C $(POCO_BASE)/Data/SQLite/testsuite
  210. Data/SQLite-clean:
  211. $(MAKE) -C $(POCO_BASE)/Data/SQLite clean
  212. $(MAKE) -C $(POCO_BASE)/Data/SQLite/testsuite clean
  213. Data/ODBC-libexec: Foundation-libexec Data-libexec
  214. $(MAKE) -C $(POCO_BASE)/Data/ODBC
  215. Data/ODBC-tests: Data/ODBC-libexec DataTest-libexec cppunit
  216. $(MAKE) -C $(POCO_BASE)/Data/ODBC/testsuite
  217. Data/ODBC-clean:
  218. $(MAKE) -C $(POCO_BASE)/Data/ODBC clean
  219. $(MAKE) -C $(POCO_BASE)/Data/ODBC/testsuite clean
  220. Data/MySQL-libexec: Foundation-libexec Data-libexec
  221. $(MAKE) -C $(POCO_BASE)/Data/MySQL
  222. Data/MySQL-tests: Data/MySQL-libexec DataTest-libexec cppunit
  223. $(MAKE) -C $(POCO_BASE)/Data/MySQL/testsuite
  224. Data/MySQL-clean:
  225. $(MAKE) -C $(POCO_BASE)/Data/MySQL clean
  226. $(MAKE) -C $(POCO_BASE)/Data/MySQL/testsuite clean
  227. Data/PostgreSQL-libexec: Foundation-libexec Data-libexec
  228. $(MAKE) -C $(POCO_BASE)/Data/PostgreSQL
  229. Data/PostgreSQL-tests: Data/PostgreSQL-libexec DataTest-libexec cppunit
  230. $(MAKE) -C $(POCO_BASE)/Data/PostgreSQL/testsuite
  231. Data/PostgreSQL-clean:
  232. $(MAKE) -C $(POCO_BASE)/Data/PostgreSQL clean
  233. $(MAKE) -C $(POCO_BASE)/Data/PostgreSQL/testsuite clean
  234. ActiveRecord-libexec: Foundation-libexec Data-libexec
  235. $(MAKE) -C $(POCO_BASE)/ActiveRecord
  236. ActiveRecord-tests: ActiveRecord-libexec Data/SQLite-libexec cppunit
  237. $(MAKE) -C $(POCO_BASE)/ActiveRecord/testsuite
  238. ActiveRecord-clean:
  239. $(MAKE) -C $(POCO_BASE)/ActiveRecord clean
  240. $(MAKE) -C $(POCO_BASE)/ActiveRecord/testsuite clean
  241. ActiveRecord/Compiler-libexec: Foundation-libexec Util-libexec
  242. $(MAKE) -C $(POCO_BASE)/ActiveRecord/Compiler
  243. ActiveRecord/Compiler-clean:
  244. $(MAKE) -C $(POCO_BASE)/ActiveRecord/Compiler clean
  245. Zip-libexec: Foundation-libexec Net-libexec Util-libexec XML-libexec
  246. $(MAKE) -C $(POCO_BASE)/Zip
  247. Zip-tests: Zip-libexec cppunit
  248. $(MAKE) -C $(POCO_BASE)/Zip/testsuite
  249. Zip-samples: Zip-libexec
  250. $(MAKE) -C $(POCO_BASE)/Zip/samples
  251. Zip-clean:
  252. $(MAKE) -C $(POCO_BASE)/Zip clean
  253. $(MAKE) -C $(POCO_BASE)/Zip/testsuite clean
  254. $(MAKE) -C $(POCO_BASE)/Zip/samples clean
  255. PageCompiler-libexec: Net-libexec Util-libexec XML-libexec Foundation-libexec
  256. $(MAKE) -C $(POCO_BASE)/PageCompiler
  257. PageCompiler-samples: PageCompiler-libexec
  258. $(MAKE) -C $(POCO_BASE)/PageCompiler/samples
  259. PageCompiler-clean:
  260. $(MAKE) -C $(POCO_BASE)/PageCompiler clean
  261. $(MAKE) -C $(POCO_BASE)/PageCompiler/samples clean
  262. PageCompiler/File2Page-libexec: Net-libexec Util-libexec XML-libexec Foundation-libexec
  263. $(MAKE) -C $(POCO_BASE)/PageCompiler/File2Page
  264. PageCompiler/File2Page-clean:
  265. $(MAKE) -C $(POCO_BASE)/PageCompiler/File2Page clean
  266. JWT-libexec: Foundation-libexec JSON-libexec Crypto-libexec
  267. $(MAKE) -C $(POCO_BASE)/JWT
  268. JWT-tests: JWT-libexec cppunit
  269. $(MAKE) -C $(POCO_BASE)/JWT/testsuite
  270. JWT-clean:
  271. $(MAKE) -C $(POCO_BASE)/JWT clean
  272. $(MAKE) -C $(POCO_BASE)/JWT/testsuite clean
  273. CppParser-libexec: Foundation-libexec
  274. $(MAKE) -C $(POCO_BASE)/CppParser
  275. CppParser-tests: CppParser-libexec cppunit
  276. $(MAKE) -C $(POCO_BASE)/CppParser/testsuite
  277. CppParser-clean:
  278. $(MAKE) -C $(POCO_BASE)/CppParser clean
  279. $(MAKE) -C $(POCO_BASE)/CppParser/testsuite clean
  280. PDF-libexec: Util-libexec XML-libexec JSON-libexec Foundation-libexec
  281. $(MAKE) -C $(POCO_BASE)/PDF
  282. PDF-tests: PDF-libexec cppunit
  283. $(MAKE) -C $(POCO_BASE)/PDF/testsuite
  284. PDF-samples: PDF-libexec
  285. $(MAKE) -C $(POCO_BASE)/PDF/samples
  286. PDF-clean:
  287. $(MAKE) -C $(POCO_BASE)/PDF clean
  288. $(MAKE) -C $(POCO_BASE)/PDF/testsuite clean
  289. $(MAKE) -C $(POCO_BASE)/PDF/samples clean
  290. MongoDB-libexec: Foundation-libexec Net-libexec
  291. $(MAKE) -C $(POCO_BASE)/MongoDB
  292. MongoDB-tests: MongoDB-libexec cppunit
  293. $(MAKE) -C $(POCO_BASE)/MongoDB/testsuite
  294. MongoDB-samples: MongoDB-libexec
  295. $(MAKE) -C $(POCO_BASE)/MongoDB/samples
  296. MongoDB-clean:
  297. $(MAKE) -C $(POCO_BASE)/MongoDB clean
  298. $(MAKE) -C $(POCO_BASE)/MongoDB/testsuite clean
  299. $(MAKE) -C $(POCO_BASE)/MongoDB/samples clean
  300. Redis-libexec: Foundation-libexec Net-libexec
  301. $(MAKE) -C $(POCO_BASE)/Redis
  302. Redis-tests: Redis-libexec cppunit
  303. $(MAKE) -C $(POCO_BASE)/Redis/testsuite
  304. Redis-clean:
  305. $(MAKE) -C $(POCO_BASE)/Redis clean
  306. $(MAKE) -C $(POCO_BASE)/Redis/testsuite clean
  307. Prometheus-libexec: Foundation-libexec Net-libexec
  308. $(MAKE) -C $(POCO_BASE)/Prometheus
  309. Prometheus-tests: Prometheus-libexec cppunit
  310. $(MAKE) -C $(POCO_BASE)/Prometheus/testsuite
  311. Prometheus-samples: Prometheus-libexec Util-libexec
  312. $(MAKE) -C $(POCO_BASE)/Prometheus/samples
  313. Prometheus-clean:
  314. $(MAKE) -C $(POCO_BASE)/Prometheus clean
  315. $(MAKE) -C $(POCO_BASE)/Prometheus/testsuite clean
  316. $(MAKE) -C $(POCO_BASE)/Prometheus/samples clean
  317. clean: cleans CppUnit-clean
  318. distclean:
  319. rm -rf $(POCO_BUILD)/lib
  320. find $(POCO_BUILD) -name obj -type d -print0 | xargs -0 rm -rf
  321. find $(POCO_BUILD) -name .dep -type d -print0 | xargs -0 rm -rf
  322. find $(POCO_BUILD) -name bin -type d -print0 | xargs -0 rm -rf