Makefile 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  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. ifndef POCO_PREFIX
  13. export POCO_PREFIX=/usr/local
  14. endif
  15. ifndef POCO_BUILD
  16. export POCO_BUILD=$(POCO_BASE)
  17. endif
  18. # if we've built both static and shared, install shared
  19. ifeq ($(LINKMODE),BOTH)
  20. SHAREDONLY='(' -name static -prune ')' -o
  21. endif
  22. # TESTS and SAMPLES are set by confgure script in config.make
  23. poco: libexecs $(if $(TESTS),tests) $(if $(SAMPLES),samples)
  24. all: libexecs tests samples
  25. INSTALLDIR = $(DESTDIR)$(POCO_PREFIX)
  26. COMPONENTS = Foundation XML Util Net Crypto NetSSL_OpenSSL Data Data/SQLite Data/ODBC Data/MySQL Zip PageCompiler PageCompiler/File2Page PDF CppParser JSON
  27. cppunit:
  28. $(MAKE) -C $(POCO_BASE)/CppUnit
  29. install: libexecs
  30. mkdir -p $(INSTALLDIR)/include/Poco
  31. mkdir -p $(INSTALLDIR)/lib$(LIB64SUFFIX)
  32. mkdir -p $(INSTALLDIR)/bin
  33. for comp in $(COMPONENTS) ; do \
  34. if [ -d "$(POCO_BASE)/$$comp/include" ] ; then \
  35. cp -Rf $(POCO_BASE)/$$comp/include/* $(INSTALLDIR)/include/ ; \
  36. fi ; \
  37. if [ -d "$(POCO_BUILD)/$$comp/bin" ] ; then \
  38. find $(POCO_BUILD)/$$comp/bin $(SHAREDONLY) '(' -perm -700 -type f -exec cp -f {} $(INSTALLDIR)/bin \; ')' ; \
  39. fi ; \
  40. done
  41. find $(POCO_BUILD)/lib -name "libPoco*" -type f -exec cp -f {} $(INSTALLDIR)/lib$(LIB64SUFFIX) \;
  42. find $(POCO_BUILD)/lib -name "libPoco*" -type l -exec cp -Rf {} $(INSTALLDIR)/lib$(LIB64SUFFIX) \;
  43. 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 PDF-libexec CppParser-libexec
  44. 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 PDF-tests CppParser-tests
  45. samples = Foundation-samples XML-samples JSON-samples Util-samples Net-samples Crypto-samples NetSSL_OpenSSL-samples Data-samples Zip-samples PageCompiler-samples PDF-samples
  46. .PHONY: poco all libexecs cppunit tests samples clean distclean install
  47. .PHONY: $(libexecs)
  48. .PHONY: $(tests)
  49. .PHONY: $(samples)
  50. libexecs: $(filter-out $(foreach f,$(OMIT),$f%),$(libexecs))
  51. tests: $(filter-out $(foreach f,$(OMIT),$f%),$(tests))
  52. samples: $(filter-out $(foreach f,$(OMIT),$f%),$(samples))
  53. Foundation-libexec:
  54. $(MAKE) -C $(POCO_BASE)/Foundation
  55. Foundation-tests: Foundation-libexec cppunit
  56. $(MAKE) -C $(POCO_BASE)/Foundation/testsuite
  57. Foundation-samples: Foundation-libexec
  58. $(MAKE) -C $(POCO_BASE)/Foundation/samples
  59. XML-libexec: Foundation-libexec
  60. $(MAKE) -C $(POCO_BASE)/XML
  61. XML-tests: XML-libexec cppunit
  62. $(MAKE) -C $(POCO_BASE)/XML/testsuite
  63. XML-samples: XML-libexec
  64. $(MAKE) -C $(POCO_BASE)/XML/samples
  65. JSON-libexec: Foundation-libexec
  66. $(MAKE) -C $(POCO_BASE)/JSON
  67. JSON-tests: JSON-libexec cppunit
  68. $(MAKE) -C $(POCO_BASE)/JSON/testsuite
  69. JSON-samples: JSON-libexec
  70. $(MAKE) -C $(POCO_BASE)/JSON/samples
  71. Util-libexec: Foundation-libexec XML-libexec
  72. $(MAKE) -C $(POCO_BASE)/Util
  73. Util-tests: Util-libexec cppunit
  74. $(MAKE) -C $(POCO_BASE)/Util/testsuite
  75. Util-samples: Util-libexec
  76. $(MAKE) -C $(POCO_BASE)/Util/samples
  77. Net-libexec: Foundation-libexec
  78. $(MAKE) -C $(POCO_BASE)/Net
  79. Net-tests: Net-libexec cppunit
  80. $(MAKE) -C $(POCO_BASE)/Net/testsuite
  81. Net-samples: Net-libexec Foundation-libexec XML-libexec Util-libexec
  82. $(MAKE) -C $(POCO_BASE)/Net/samples
  83. Crypto-libexec: Foundation-libexec
  84. $(MAKE) -C $(POCO_BASE)/Crypto
  85. Crypto-tests: Crypto-libexec cppunit
  86. $(MAKE) -C $(POCO_BASE)/Crypto/testsuite
  87. Crypto-samples: Crypto-libexec Foundation-libexec Util-libexec
  88. $(MAKE) -C $(POCO_BASE)/Crypto/samples
  89. NetSSL_OpenSSL-libexec: Foundation-libexec Net-libexec Util-libexec Crypto-libexec
  90. $(MAKE) -C $(POCO_BASE)/NetSSL_OpenSSL
  91. NetSSL_OpenSSL-tests: NetSSL_OpenSSL-libexec cppunit
  92. $(MAKE) -C $(POCO_BASE)/NetSSL_OpenSSL/testsuite
  93. NetSSL_OpenSSL-samples: NetSSL_OpenSSL-libexec
  94. $(MAKE) -C $(POCO_BASE)/NetSSL_OpenSSL/samples
  95. Data-libexec: Foundation-libexec
  96. $(MAKE) -C $(POCO_BASE)/Data
  97. Data-tests: Data-libexec cppunit
  98. $(MAKE) -C $(POCO_BASE)/Data/testsuite
  99. Data-samples: Data-libexec Data-libexec Data/SQLite-libexec
  100. $(MAKE) -C $(POCO_BASE)/Data/samples
  101. Data/SQLite-libexec: Foundation-libexec Data-libexec
  102. $(MAKE) -C $(POCO_BASE)/Data/SQLite
  103. Data/SQLite-tests: Data/SQLite-libexec cppunit
  104. $(MAKE) -C $(POCO_BASE)/Data/SQLite/testsuite
  105. Data/ODBC-libexec: Foundation-libexec Data-libexec
  106. $(MAKE) -C $(POCO_BASE)/Data/ODBC
  107. Data/ODBC-tests: Data/ODBC-libexec cppunit
  108. $(MAKE) -C $(POCO_BASE)/Data/ODBC/testsuite
  109. Data/MySQL-libexec: Foundation-libexec Data-libexec
  110. $(MAKE) -C $(POCO_BASE)/Data/MySQL
  111. Data/MySQL-tests: Data/MySQL-libexec cppunit
  112. $(MAKE) -C $(POCO_BASE)/Data/MySQL/testsuite
  113. Zip-libexec: Foundation-libexec Net-libexec Util-libexec XML-libexec
  114. $(MAKE) -C $(POCO_BASE)/Zip
  115. Zip-tests: Zip-libexec cppunit
  116. $(MAKE) -C $(POCO_BASE)/Zip/testsuite
  117. Zip-samples: Zip-libexec
  118. $(MAKE) -C $(POCO_BASE)/Zip/samples
  119. PageCompiler-libexec: Net-libexec Util-libexec XML-libexec Foundation-libexec
  120. $(MAKE) -C $(POCO_BASE)/PageCompiler
  121. PageCompiler-samples: PageCompiler-libexec
  122. $(MAKE) -C $(POCO_BASE)/PageCompiler/samples
  123. PageCompiler/File2Page-libexec: Net-libexec Util-libexec XML-libexec Foundation-libexec
  124. $(MAKE) -C $(POCO_BASE)/PageCompiler/File2Page
  125. PDF-libexec: Foundation-libexec
  126. $(MAKE) -C $(POCO_BASE)/PDF
  127. PDF-tests: PDF-libexec cppunit
  128. $(MAKE) -C $(POCO_BASE)/PDF/testsuite
  129. PDF-samples: PDF-libexec
  130. $(MAKE) -C $(POCO_BASE)/PDF/samples
  131. CppParser-libexec: Foundation-libexec
  132. $(MAKE) -C $(POCO_BASE)/CppParser
  133. CppParser-tests: CppParser-libexec
  134. $(MAKE) -C $(POCO_BASE)/CppParser/testsuite
  135. clean:
  136. $(MAKE) -C $(POCO_BASE)/Foundation clean
  137. $(MAKE) -C $(POCO_BASE)/Foundation/testsuite clean
  138. $(MAKE) -C $(POCO_BASE)/Foundation/samples clean
  139. $(MAKE) -C $(POCO_BASE)/XML clean
  140. $(MAKE) -C $(POCO_BASE)/XML/testsuite clean
  141. $(MAKE) -C $(POCO_BASE)/XML/samples clean
  142. $(MAKE) -C $(POCO_BASE)/Util clean
  143. $(MAKE) -C $(POCO_BASE)/Util/testsuite clean
  144. $(MAKE) -C $(POCO_BASE)/Util/samples clean
  145. $(MAKE) -C $(POCO_BASE)/Net clean
  146. $(MAKE) -C $(POCO_BASE)/Net/testsuite clean
  147. $(MAKE) -C $(POCO_BASE)/Net/samples clean
  148. $(MAKE) -C $(POCO_BASE)/Crypto clean
  149. $(MAKE) -C $(POCO_BASE)/Crypto/testsuite clean
  150. $(MAKE) -C $(POCO_BASE)/Crypto/samples clean
  151. $(MAKE) -C $(POCO_BASE)/NetSSL_OpenSSL clean
  152. $(MAKE) -C $(POCO_BASE)/NetSSL_OpenSSL/testsuite clean
  153. $(MAKE) -C $(POCO_BASE)/NetSSL_OpenSSL/samples clean
  154. $(MAKE) -C $(POCO_BASE)/Data clean
  155. $(MAKE) -C $(POCO_BASE)/Data/testsuite clean
  156. $(MAKE) -C $(POCO_BASE)/Data/samples clean
  157. $(MAKE) -C $(POCO_BASE)/Data/SQLite clean
  158. $(MAKE) -C $(POCO_BASE)/Data/SQLite/testsuite clean
  159. $(MAKE) -C $(POCO_BASE)/Data/ODBC clean
  160. $(MAKE) -C $(POCO_BASE)/Data/ODBC/testsuite clean
  161. $(MAKE) -C $(POCO_BASE)/Data/MySQL clean
  162. $(MAKE) -C $(POCO_BASE)/Data/MySQL/testsuite clean
  163. $(MAKE) -C $(POCO_BASE)/Zip clean
  164. $(MAKE) -C $(POCO_BASE)/Zip/testsuite clean
  165. $(MAKE) -C $(POCO_BASE)/Zip/samples clean
  166. $(MAKE) -C $(POCO_BASE)/PageCompiler clean
  167. $(MAKE) -C $(POCO_BASE)/PageCompiler/samples clean
  168. $(MAKE) -C $(POCO_BASE)/PageCompiler/File2Page clean
  169. $(MAKE) -C $(POCO_BASE)/PDF clean
  170. $(MAKE) -C $(POCO_BASE)/PDF/testsuite clean
  171. $(MAKE) -C $(POCO_BASE)/PDF/samples clean
  172. $(MAKE) -C $(POCO_BASE)/CppParser clean
  173. $(MAKE) -C $(POCO_BASE)/CppParser/testsuite clean
  174. $(MAKE) -C $(POCO_BASE)/CppUnit clean
  175. $(MAKE) -C $(POCO_BASE)/JSON clean
  176. $(MAKE) -C $(POCO_BASE)/JSON/testsuite clean
  177. $(MAKE) -C $(POCO_BASE)/JSON/samples clean
  178. distclean:
  179. rm -rf $(POCO_BUILD)/lib
  180. find $(POCO_BUILD) -name obj -type d -print0 | xargs -0 rm -rf
  181. find $(POCO_BUILD) -name .dep -type d -print0 | xargs -0 rm -rf
  182. find $(POCO_BUILD) -name bin -type d -print0 | xargs -0 rm -rf