Makefile 11 KB

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