Makefile.incl
上传用户:zhuqijet
上传日期:2013-06-25
资源大小:10074k
文件大小:25k
源码类别:

词法分析

开发平台:

Visual C++

  1. #
  2. # The Apache Software License, Version 1.1
  3. #
  4. # Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
  5. # reserved.
  6. #
  7. # Redistribution and use in source and binary forms, with or without
  8. # modification, are permitted provided that the following conditions
  9. # are met:
  10. #
  11. # 1. Redistributions of source code must retain the above copyright
  12. #    notice, this list of conditions and the following disclaimer.
  13. #
  14. # 2. Redistributions in binary form must reproduce the above copyright
  15. #    notice, this list of conditions and the following disclaimer in
  16. #    the documentation and/or other materials provided with the
  17. #    distribution.
  18. #
  19. # 3. The end-user documentation included with the redistribution,
  20. #    if any, must include the following acknowledgment:
  21. #       "This product includes software developed by the
  22. #        Apache Software Foundation (http://www.apache.org/)."
  23. #    Alternately, this acknowledgment may appear in the software itself,
  24. #    if and wherever such third-party acknowledgments normally appear.
  25. #
  26. # 4. The names "Xerces" and "Apache Software Foundation" must
  27. #    not be used to endorse or promote products derived from this
  28. #    software without prior written permission. For written
  29. #    permission, please contact apache@apache.org.
  30. #
  31. # 5. Products derived from this software may not be called "Apache",
  32. #    nor may "Apache" appear in their name, without prior written
  33. #    permission of the Apache Software Foundation.
  34. #
  35. # THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  36. # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  37. # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  38. # DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  39. # ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  40. # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  41. # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  42. # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  43. # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  44. # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  45. # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  46. # SUCH DAMAGE.
  47. # ====================================================================
  48. #
  49. # This software consists of voluntary contributions made by many
  50. # individuals on behalf of the Apache Software Foundation, and was
  51. # originally based on software copyright (c) 1999, International
  52. # Business Machines, Inc., http://www.ibm.com .  For more information
  53. # on the Apache Software Foundation, please see
  54. # <http://www.apache.org/>.
  55. #
  56. #
  57. # $Id: Makefile.incl,v 1.41 2003/05/12 09:44:19 gareth Exp $
  58. #
  59. ###################################################################
  60. #                    IMPORTANT NOTE                               #
  61. ###################################################################
  62. # Before you try to run the Makefile, make sure you have set      #
  63. # the following environment variables properly.                   #
  64. #                                                                 #
  65. # export XERCESCROOT=<the directory where you installed XRECES-C> #
  66. #                                                                 #
  67. # In case you intend to use either the ICU transcoder or the      #
  68. # ICU message loader, you must set ICUROOT correctly.             #
  69. # export ICUROOT=<the directory where you installed ICU>          #
  70. #                                                                 #
  71. # For netaccessor, if you intend to use libwww, then you must     #
  72. # also set another environment variable called LIBWWWROOT         #
  73. # export LIBWWWROOT=<the directory where you installed libwww>    #
  74. ###################################################################
  75. ###################################################################
  76. #         SPECIAL INSTRUCTIONS FOR OS/390 BATCH MODE              #
  77. ###################################################################
  78. # If you are going to do the OS390BATCH build, make sure you have #
  79. # the OS390BATCH environment variable set.                        #
  80. #                                                                 #
  81. #   export OS390BATCH=1                                           #
  82. #                                                                 #
  83. # Also,                                                           #
  84. #                                                                 #
  85. #   export LOADMOD=USERID.LOAD                                    #
  86. #   export LOADEXP=USERID.EXP                                     #
  87. #                                                                 #
  88. # to specify your LOADMOD and the definition sidedeck dataset.    #
  89. ###################################################################
  90. ALL:    all
  91. XML_BUILD_OPTIONS = ${CXXFLAGS}
  92. XML_LIB_DIR = $(XERCESCROOT)/lib
  93. XML_INC_DIR = $(XERCESCROOT)/include/xercesc
  94. XML_OBJ_DIR = ${XERCESCROOT}/obj/${PLATFORM}
  95. XML_OBJ        = ${XERCESCROOT}/obj
  96. XML_INCL = -I$(XERCESCROOT)/include
  97. ifeq (${SYSOVR},OS400)
  98. PLATFORM = OS400
  99. endif
  100. TO = o
  101. RM2 = rm -f
  102. ## Compiler switch to embed a library name
  103. ## default value empty
  104. LD_SONAME =
  105. ####################### PLATFORM DEPENDENCIES #####################
  106. #=============== SOLARIS SPECIFIC OPTIONS =========================
  107. ifeq (${PLATFORM}, SOLARIS)
  108.   ifeq (${GXX}, yes)
  109.     PLATFORM_COMPILE_OPTIONS = -fPIC -D${PLATFORM} -D_REENTRANT
  110.     MAKE_SHARED = ${CXX} -D${PLATFORM} -shared ${LDFLAGS}
  111.     MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared ${LDFLAGS}
  112.     ifeq (${TRANSCODER}, ICU)
  113.         ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib 
  114.                   -licuuc -licudata -lm -lgen
  115.     else
  116.         ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib 
  117.                   -lm  -lgen
  118.     endif
  119.     ifeq (${MESSAGELOADER}, ICU)
  120.         ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib 
  121.                   -licuuc -licudata -lXercesMessages -lm -lgen
  122.     endif
  123.   else
  124.     PLATFORM_COMPILE_OPTIONS = -KPIC -mt -xs -ptr$(XML_OBJ_DIR) 
  125.                                -features=rtti -D${PLATFORM} -D_REENTRANT
  126.     MAKE_SHARED = ${CXX} -D${PLATFORM} -G -ptr$(XML_OBJ_DIR) ${LDFLAGS}
  127.     MAKE_SHARED_C = ${CC} -D${PLATFORM} -G ${LDFLAGS}
  128.     ifeq (${TRANSCODER}, ICU)
  129.         ALLLIBS = -mt -licuuc -licudata ${LIBS}
  130.     else
  131.         ALLLIBS = -mt ${LIBS}
  132.     endif
  133.     ifeq (${MESSAGELOADER}, ICU)
  134.         ALLLIBS = -mt -licuuc -licudata -lXercesMessages ${LIBS}
  135.     endif
  136.   endif
  137.   SHLIBSUFFIX=.so
  138.   ## Compiler switch to embed a library name
  139.   LD_SONAME = -h ${SO_NAME}
  140. endif
  141. #=============== UNIXWARE SPECIFIC OPTIONS =========================
  142. ifeq (${PLATFORM}, UNIXWARE)
  143.   ifeq (${GXX}, yes)
  144.     PLATFORM_COMPILE_OPTIONS = -fPIC -D${PLATFORM} -D_REENTRANT
  145.     MAKE_SHARED = ${CXX} -D${PLATFORM} -shared ${LDFLAGS}
  146.     MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared ${LDFLAGS}
  147.     ifeq (${TRANSCODER}, ICU)
  148.         ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib 
  149.                   -licuuc -licudata -lm -lw -lgen
  150.     else
  151.         ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib 
  152.                   -lm -lw -lgen
  153.     endif
  154.   else
  155.     PLATFORM_COMPILE_OPTIONS = -KPIC -mt -xs 
  156.                                -D${PLATFORM} -D_REENTRANT
  157.     MAKE_SHARED = ${CXX} -D${PLATFORM} -G ${LDFLAGS}
  158.     MAKE_SHARED_C = ${CC} -D${PLATFORM} -G ${LDFLAGS}
  159.     ifeq (${TRANSCODER}, ICU)
  160.         ALLLIBS = ${LIBS} -L/usr/local/lib -L/usr/ccs/lib 
  161.                   -licuuc -licudata -lm -lw -lC -lc -lgen
  162.     else
  163.         ALLLIBS = ${LIBS} -L/usr/local/lib -L/usr/ccs/lib 
  164.                   -lm -lw -lC -lc -lgen
  165.     endif
  166.   endif
  167.   SHLIBSUFFIX=.so
  168. endif
  169. #=============== OPENSERVER SPECIFIC OPTIONS =========================
  170. ifeq (${PLATFORM}, OPENSERVER)
  171.   ifeq (${GXX}, yes)
  172.     COMMON_COMPILE_OPTIONS = -D${PLATFORM} -fPIC
  173.     ifeq (${THREADS}, none)
  174.       PLATFORM_COMPILE_OPTIONS = ${COMMON_COMPILE_OPTIONS}
  175.     else
  176.       PLATFORM_COMPILE_OPTIONS = ${COMMON_COMPILE_OPTIONS} -D_REENTRANT
  177.     endif
  178.     MAKE_SHARED = ${CXX} -D${PLATFORM} -G ${LDFLAGS}
  179.     MAKE_SHARED_C = ${CC} -D${PLATFORM} -G ${LDFLAGS}
  180.     EXTRA_LINK_OPTIONS = -Wl,-h,${LIBNAME}${VER}${SHLIBSUFFIX}
  181.   else
  182.     PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} -belf -KPIC
  183.     MAKE_SHARED = ${CXX} -D${PLATFORM} -belf -G ${LDFLAGS}
  184.     MAKE_SHARED_C = ${CC} -D${PLATFORM} -belf -G ${LDFLAGS}
  185.   endif
  186.   ifeq (${TRANSCODER}, ICU)
  187.     ALLLIBS = ${LIBS} -licu-uc -licudata
  188.   else
  189.     ALLLIBS = ${LIBS}
  190.   endif
  191.   SHLIBSUFFIX=.so
  192. endif
  193. #================= PTX SPECIFIC OPTIONS ===========================
  194. ifeq (${PLATFORM}, PTX)
  195. PLATFORM_CPP_COMPILER = c++
  196. PLATFORM_C_COMPILER = cc
  197. ifeq (${TRANSCODER}, ICU)
  198.   PLATFORM_COMPILE_OPTIONS = -KPIC -Kthread -D${PLATFORM}
  199.   ALLLIBS = ${LIBS} -L${ICUROOT}/lib -lm -lgen -licuuc
  200. else
  201.   PLATFORM_COMPILE_OPTIONS = -KPIC -Kthread -D${PLATFORM}
  202.   ALLLIBS = ${LIBS} -lm -lgen
  203. endif
  204. OBJ_OUT=${ALL_OBJECTS_DIR}/
  205. MAKE_SHARED = ${PLATFORM_CPP_COMPILER} -D${PLATFORM} -G ${LDFLAGS}
  206. MAKE_SHARED_C = ${PLATFORM_C_COMPILER} -D${PLATFORM} -G ${LDFLAGS}
  207. EXTRA_LINK_OPTIONS = -lm -lgen
  208. SHLIBSUFFIX=.so
  209. endif
  210. #================= AIX SPECIFIC OPTIONS ===========================
  211. ifeq (${PLATFORM}, AIX)
  212. #PLATFORM_CPP_COMPILER = xlC_r
  213. #PLATFORM_C_COMPILER = xlc_r
  214. #ifdef ICUROOT
  215. #  ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -L${ICUROOT}/lib -licuuc -licudata -lbsd
  216. #else
  217. #  ALLLIBS = -L/usr/lpp/xlC/lib -lbsd
  218. #endif
  219. ifeq (${TRANSCODER}, ICU)
  220.     ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -licuuc24 -licudata24
  221. else
  222.     ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib
  223. endif
  224. ifeq (${MESSAGELOADER}, ICU)
  225.     ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -licuuc24 -licudata24 -lXercesMessages
  226. endif
  227. PLATFORM_COMPILE_OPTIONS = -qnotempinc -D_THREAD_SAFE
  228. ifeq (${BITSTOBUILD}, 64)
  229.     MAKE_SHARED = makeC++SharedLib_r -p 5000 -brtl ${LDFLAGS} -X64
  230.     MAKE_SHARED_C = makeC++SharedLib_r -p 5000 -brtl ${LDFLAGS} -X64
  231. else
  232.     MAKE_SHARED = makeC++SharedLib_r -p 5000 -brtl ${LDFLAGS}
  233.     MAKE_SHARED_C = makeC++SharedLib_r -p 5000 -brtl ${LDFLAGS}
  234. endif
  235. EXTRA_LINK_OPTIONS = -bmap:$(XML_OBJ)/${LIBNAME}${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}.map
  236. SHLIBSUFFIX=.so
  237. ## Compiler switch to embed a library name
  238. LD_SONAME =
  239. endif
  240. #================= OS400 SPECIFIC OPTIONS ==========================
  241. ifeq (${PLATFORM}, OS400)
  242. ifeq (${SYSOVR},OS400)
  243. MYCC = /afs/rchland.ibm.com/usr2/phkramer/bin/tvcc.pl
  244. else
  245. MYCC = icc
  246. endif
  247. CXX = $(MYCC)
  248. CC = $(MYCC)
  249. JUSTCC = $(MYCC)
  250. XML_INCL    += -I${ICUROOT}/include
  251. ifeq (${SYSOVR},OS400)
  252. PLATFORM_COMPILE_OPTIONS = -qnotempinc
  253. MAKE_SHARED = makeC++SharedLib_r -p 5000 ${LDFLAGS}
  254. MAKE_SHARED_C = makeC++SharedLib_r -p 5000 ${LDFLAGS}
  255. TO = qwobj
  256. SHLIBSUFFIX=.a
  257. else
  258. PLATFORM_COMPILE_OPTIONS = -qnotempinc  -D_MULTI_THREADED -D${PLATFORM}
  259. PLATFORM_C_COMPILE_OPTIONS =  -v  -D_MULTI_THREADED -D${PLATFORM}
  260. MAKE_SHARED = ld -v ${LDFLAGS}
  261. MAKE_SHARED_C = ld -v ${LDFLAGS}
  262. SHLIBSUFFIX=.o
  263. endif
  264. ifeq (${TRANSCODER}, ICU)
  265. ifeq (${SYSOVR},OS400)
  266. EXTRA_LINK_OPTIONS = -licuuc -licudata -lbsd
  267. else
  268. EXTRA_LINK_OPTIONS = -lQZUUC
  269. endif
  270. endif
  271. EXTRA_COMPILE_OPTIONS = -I. -g
  272. EXTRA_LINK_OPTIONS = -q OPTION='*DUPVAR *DUPPROC'
  273. RM2 = -del
  274. endif
  275. #=============== BEOS SPECIFIC OPTIONS =========================
  276. ifeq (${PLATFORM}, BEOS)
  277. PLATFORM_COMPILE_OPTIONS = -fPIC -D${PLATFORM} -DAPP_NO_THREADS
  278. MAKE_SHARED = ${CXX} -D${PLATFORM} -nostart -fPIC ${LDFLAGS}
  279. MAKE_SHARED_C = ${CC} -D${PLATFORM} -nostart -fPIC ${LDFLAGS}
  280. ifeq (${TRANSCODER}, ICU)
  281.     ALLLIBS = ${LIBS} -L/boot/develop/lib/x86 -L/boot/home/config/lib -lbe -licuuc -licudata
  282. else
  283.     ALLLIBS = ${LIBS} -L/boot/develop/lib/x86 -L/boot/home/config/lib -lbe
  284. endif
  285. EXTRA_LINK_OPTIONS = -Xlinker -Map -Xlinker $(XML_OBJ)/${SO_NAME}.map
  286. SHLIBSUFFIX=.so
  287. ## Compiler switch to embed a library name
  288. LD_SONAME = -Wl,-soname,${SO_NAME}
  289. endif
  290. #=============== LINUX SPECIFIC OPTIONS =========================
  291. ifeq (${PLATFORM}, LINUX)
  292. PLATFORM_COMPILE_OPTIONS = -fPIC -D${PLATFORM} -D_REENTRANT
  293. MAKE_SHARED = ${CXX} -D${PLATFORM} -shared -fPIC ${LDFLAGS}
  294. MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared -fPIC ${LDFLAGS}
  295. ifeq (${TRANSCODER}, ICU)
  296.     ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -licuuc -licudata
  297. else
  298.     ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib
  299. endif
  300. ifeq (${MESSAGELOADER}, ICU)
  301.     ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -licuuc -licudata -lXercesMessages
  302. endif
  303. EXTRA_LINK_OPTIONS = -Xlinker -Map -Xlinker $(XML_OBJ)/${SO_NAME}.map
  304. SHLIBSUFFIX=.so
  305. ## Compiler switch to embed a library name
  306. LD_SONAME = -Wl,-soname,${SO_NAME}
  307. endif
  308. #=============== QNX SPECIFIC OPTIONS =========================
  309. ifeq (${PLATFORM}, QNX)
  310. PLATFORM_COMPILE_OPTIONS = -shared
  311. MAKE_SHARED = ${CXX}  -shared ${LDFLAGS}
  312. MAKE_SHARED_C = ${CC} -shared ${LDFLAGS}
  313. ifeq (${TRANSCODER}, ICU)
  314.     ALLLIBS = ${LIBS} -L/usr/local/lib -licuuc -licudata
  315. else
  316.     ALLLIBS = ${LIBS}
  317. endif
  318. ifeq (${MESSAGELOADER}, ICU)
  319.     ALLLIBS = ${LIBS} -L/usr/local/lib -licuuc -licudata -lXercesMessages
  320. endif
  321. EXTRA_LINK_OPTIONS =
  322. SHLIBSUFFIX=.so
  323. ## Compiler switch to embed a library name
  324. LD_SONAME = -Wl,-soname,${SO_NAME}
  325. endif
  326. #=============== FREEBSD SPECIFIC OPTIONS =========================
  327. ifeq (${PLATFORM}, FREEBSD)
  328. MAKE_SHARED = ${CXX} -D${PLATFORM} -shared -fPIC ${LDFLAGS}
  329. MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared -fPIC ${LDFLAGS}
  330. ifeq (${TRANSCODER}, ICU)
  331.     PLATFORM_COMPILE_OPTIONS = -fPIC -D${PLATFORM} -I/usr/local/include
  332.     ALLLIBS = ${LIBS} -L/usr/local/lib -licuuc -L${ICUROOT} -licudata -lgcc
  333. else
  334.     PLATFORM_COMPILE_OPTIONS = -fPIC -D${PLATFORM}
  335.     ALLLIBS = ${LIBS}
  336. endif
  337. SHLIBSUFFIX=.so
  338. ## Compiler switch to embed a library name
  339. LD_SONAME = -Wl,-soname,${SO_NAME}
  340. endif
  341. #=============== NETBSD SPECIFIC OPTIONS =========================
  342. ifeq (${PLATFORM}, NETBSD)
  343. MAKE_SHARED = ${CXX} -D${PLATFORM} -shared -fPIC ${LDFLAGS}
  344. MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared -fPIC ${LDFLAGS}
  345. ifeq (${TRANSCODER}, ICU)
  346.     PLATFORM_COMPILE_OPTIONS = -fPIC -D${PLATFORM} -I/usr/local/include
  347.     ALLLIBS = ${LIBS} -L/usr/local/lib -licuuc -L${ICUROOT} -licudata -lgcc
  348. else
  349.     PLATFORM_COMPILE_OPTIONS = -fPIC -D${PLATFORM}
  350.     ALLLIBS = ${LIBS}
  351. endif
  352. SHLIBSUFFIX=.so
  353. ## Compiler switch to embed a library name
  354. LD_SONAME = -Wl,-soname,${SO_NAME}
  355. endif
  356. #=============== IRIX SPECIFIC OPTIONS ============================
  357. ifeq (${PLATFORM}, IRIX)
  358. PLATFORM_COMPILE_OPTIONS = -LANG:pch -LANG:std -O2 
  359.                            -D${PLATFORM} -D_REENTRANT 
  360.                            -I/usr/local/include
  361. MAKE_SHARED = ${CXX} -D${PLATFORM} -shared ${LDFLAGS}
  362. MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared ${LDFLAGS}
  363. ifeq (${TRANSCODER}, ICU)
  364.     ALLLIBS = ${LIBS} -lC -licuuc -licudata
  365. else
  366.     ALLLIBS = ${LIBS} -lC
  367. endif
  368. SHLIBSUFFIX=.so
  369. endif
  370. #=============== OS2 SPECIFIC OPTIONS =========================
  371. ifeq (${PLATFORM}, OS/2)
  372. #PLATFORM_CPP_COMPILER = icc
  373. #PLATFORM_C_COMPILER = icc
  374. PLATFORM_LIBRARIES= CPPOM30.LIB os2386.lib mmpm2.lib
  375. PLATFORM_COMPILE_OPTIONS = /C+ /Gd- /Ge- /Gm+ /Gs- /Re /J+  /Ms /Sm /Sn /Ss+
  376. MAKE_SHARED = ilink /nofree ${LDFLAGS}
  377. MAKE_SHARED_C = ilink /nofree ${LDFLAGS}
  378. EXTRA_LINK_OPTIONS = /map /nod /noe /noi /packcode /packdata /exepack /align:4
  379. SHLIBSUFFIX= .dll
  380. ifneq (${DEBUG}, 1)
  381. XML_BUILD_OPTIONS += -2
  382. endif
  383. endif
  384. #================= HP SPECIFIC OPTIONS ===========================
  385. ifeq (${PLATFORM}, HPUX)
  386.   OSVERDEFINE=HPUX11
  387.   ifeq (${OSVER}, HPUX10)
  388.     OSVERDEFINE=HPUX10
  389.   endif
  390.   ifeq (${CXX}, aCC)
  391.     PLATFORM_COMPILE_OPTIONS = -D_HP_UX -DHPaCC 
  392.         -D${OSVERDEFINE} +DAportable +Z
  393.     MAKE_SHARED = ${CXX} -D${PLATFORM} ${LDFLAGS}
  394.     MAKE_SHARED_C = ${CC} -D${PLATFORM} ${LDFLAGS}
  395.     ifeq (${TRANSCODER}, ICU)
  396.         ALLLIBS = ${LIBS} -licuuc -licudata
  397.     else
  398.         ALLLIBS = ${LIBS}
  399.     endif
  400.     ifeq (${MESSAGELOADER}, ICU)
  401.         ALLLIBS = ${LIBS} -licuuc -licudata -lXercesMessages
  402.     endif
  403.     EXTRA_LINK_OPTIONS = -b -Wl,+s -Wl,+b,.
  404.     SHLIBSUFFIX=.sl
  405.   else
  406.     TEMPLATESREPOSITORY = ${XML_OBJ_DIR}/ptrepository
  407.     COMMON_COMPILE_OPTIONS = -D_HP_UX -DXERCES_TMPLSINC 
  408.         -D${OSVERDEFINE} +DAportable +eh +Z -Z +a1 +d
  409.     ifeq ($(MODULE), dom)
  410.       PLATFORM_COMPILE_OPTIONS  = -DDOM_PROJ $(COMMON_COMPILE_OPTIONS)
  411.     else
  412.       PLATFORM_COMPILE_OPTIONS  = $(COMMON_COMPILE_OPTIONS) -ptr${TEMPLATESREPOSITORY}
  413.     endif
  414.     MAKE_SHARED = $(CXX) $(PLATFORM_COMPILE_OPTIONS) $(XML_INCL) ${LDFLAGS}
  415.     MAKE_SHARED_C = $(CC) $(PLATFORM_COMPILE_OPTIONS) $(XML_INCL) ${LDFLAGS}
  416.     ifeq (${TRANSCODER}, ICU)
  417.         ALLLIBS = ${LIBS} -licuuc -licudata
  418.     else
  419.         ALLLIBS = ${LIBS}
  420.     endif
  421.     ifeq (${MESSAGELOADER}, ICU)
  422.         ALLLIBS = ${LIBS} -licuuc -licudata -lXercesMessages
  423.     endif
  424.     EXTRA_LINK_OPTIONS = -b -Wl,+s -Wl,+b,. -Wl,-a,shared
  425.     SHLIBSUFFIX=.sl
  426.   endif
  427.   ## Compiler switch to embed a library name
  428.   LD_SONAME = -Wl,+h,${SO_NAME}
  429. endif
  430. #================ OS/390 SPECIFIC OPTIONS =========================
  431. ifeq (${PLATFORM}, OS390)
  432. PLATFORM_CPP_COMPILER = _CXX_CXXSUFFIX="cpp" _CXX_STEPS="-1" c++
  433. PLATFORM_C_COMPILER = _CXX_CXXSUFFIX="cpp" _CXX_STEPS="-1" cc
  434. PLATFORM_LIBRARIES=
  435. ## OS390BATCH
  436. ifeq (${OS390BATCH},1)
  437. PLATFORM_COMPILE_OPTIONS =-Wc,dll -W0,"langlvl(extended)" -Wc,"TMPLPARSE(NO)" -Wc,"float(IEEE)" -D${PLATFORM} -DXML_USE_UNICONV390_TRANSCODER -DXML_ALLOW_NELWS -D_OPEN_THREADS -D_XOPEN_SOURCE_EXTENDED -DPROJ_XMLPARSER -DPROJ_XMLUTIL -DPROJ_PARSERS -DPROJ_SAX4C -DPROJ_SAX2 -DPROJ_DOM -DPROJ_VALIDATORS -DOS390BATCH
  438. else
  439. PLATFORM_COMPILE_OPTIONS =-Wc,dll -W0,"langlvl(extended)" -Wc,"TMPLPARSE(NO)" -Wc,"float(IEEE)" -D${PLATFORM} -DXML_USE_UNICONV390_TRANSCODER -DXML_ALLOW_NELWS -D_OPEN_THREADS -D_XOPEN_SOURCE_EXTENDED -DPROJ_XMLPARSER -DPROJ_XMLUTIL -DPROJ_PARSERS -DPROJ_SAX4C -DPROJ_SAX2 -DPROJ_DOM -DPROJ_VALIDATORS 
  440. endif
  441. MAKE_SHARED = ${PLATFORM_CPP_COMPILER} -D${PLATFORM} -W l,dll ${LDFLAGS}
  442. MAKE_SHARED_C = ${PLATFORM_C_COMPILER} -D${PLATFORM} -W l,dll ${LDFLAGS}
  443. ifeq (${TRANSCODER}, ICU)
  444. ## OS390BATCH
  445.     ifeq (${OS390BATCH},1)
  446.     ALLLIBS = "//'${LOADEXP}(IXM24UCX)'"
  447.     else
  448.     ALLLIBS = ${ICUROOT}/lib/libicuuc24.0.x
  449.     endif
  450. else
  451. ifeq (${TRANSCODER}, Uniconv390)
  452. ## OS390BATCH
  453.     ifeq (${OS390BATCH},1)
  454.  ALLLIBS = "//'${LOADEXP}(IXM24UCX)'"
  455.     else
  456.  ALLLIBS = ${ICUROOT}/lib/libicuuc24.0.x
  457.     endif
  458. else
  459.  ALLLIBS =
  460. endif
  461. endif
  462. EXTRA_LINK_OPTIONS =
  463. SHLIBSUFFIX=.dll
  464. OS390SIDEDECK=.x
  465. endif
  466. #=============== TRU64 SPECIFIC OPTIONS =========================
  467. ifeq (${PLATFORM}, TRU64)
  468.   SHLIBSUFFIX=.so
  469.   MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared ${LDFLAGS}
  470.   ifeq (${GXX}, yes)
  471.     MAKE_SHARED = ${CXX} -D${PLATFORM} -shared ${LDFLAGS}
  472.     PLATFORM_COMPILE_OPTIONS = -fPIC -D${PLATFORM} -D_REENTRANT
  473.     ifeq (${TRANSCODER}, ICU)
  474.       ALLLIBS = ${LIBS} -licuuc -licudata -lc -lrt
  475.     else
  476.       ALLLIBS = ${LIBS} -lc -lrt
  477.     endif
  478.   else
  479.     MAKE_SHARED = ${CXX} -D${PLATFORM} -shared -ptr ${XERCESCROOT}/.cxx_repository ${LDFLAGS}
  480.     PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} -ptr ${XERCESCROOT}/.cxx_repository
  481.     ifeq (${TRANSCODER}, ICU)
  482.     ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -licuuc -licudata -lc -lrt
  483.     else
  484.     ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -lc -lrt
  485.     endif
  486.   endif
  487. endif
  488. #=============== MacOS SPECIFIC OPTIONS =========================
  489. ifeq (${PLATFORM}, MACOSX)
  490.     PLATFORM_LIBRARIES = 
  491.         -framework CoreServices
  492.     PLATFORM_COMPILE_OPTIONS = 
  493.         -D${PLATFORM} 
  494.         -D_REENTRANT
  495.     MAKE_SHARED = ${CXX} -D${PLATFORM} -dynamiclib ${LDFLAGS}
  496.     MAKE_SHARED_C = ${CC} -D${PLATFORM} -dynamiclib ${LDFLAGS}
  497.     ifeq (${TRANSCODER}, ICU)
  498.         ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -licu-uc -licud ata -lc
  499.     else
  500.         ALLLIBS = ${LIBS} -L/usr/lib
  501.     endif
  502.     SHLIBSUFFIX=.dylib
  503. LD_SONAME = -install_name ${SO_NAME}
  504. endif
  505. #=============== CygWin SPECIFIC OPTIONS =========================
  506. ifeq (${PLATFORM}, CYGWIN)
  507.       PLATFORM_COMPILE_OPTIONS = 
  508.               -D__${PLATFORM}__ 
  509.               -I/usr/include 
  510.               -I/usr/include/w32api
  511.       MAKE_SHARED = ${CXX} -shared ${LDFLAGS}
  512.       MAKE_SHARED_C = ${CC} -shared ${LDFLAGS}
  513.       ifeq (${TRANSCODER}, ICU)
  514.               ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -licu-uc -licudata -lc
  515.       else
  516.               ALLLIBS = ${LIBS} -L/usr/lib
  517.       endif
  518.       EXTRA_LINK_OPTIONS = 
  519.               -Xlinker --warn-once 
  520.               -Xlinker -Map 
  521.                   -Xlinker $(XML_LIB_DIR)/${LIBNAME}${SO_TARGET_VERSION}.map 
  522.               -Xlinker --output-def 
  523.                   -Xlinker $(XML_LIB_DIR)/${LIBNAME}${SO_TARGET_VERSION}.def 
  524.               -Xlinker --out-implib 
  525.                   -Xlinker $(XML_LIB_DIR)/${LIBNAME}${SO_TARGET_VERSION}.dll.a
  526.         SHLIBSUFFIX=.dll
  527. endif
  528. ###################### SO_NAME ####################################
  529. #
  530. #
  531. ifeq (${PLATFORM}, AIX)
  532.     #
  533.     # LINK_NAME=libxerces-c.so
  534.     # SO_NAME  =libxerces-c20.so
  535.     # REAL_NAME=libxerces-c20.0.so
  536.     #
  537.     LINK_NAME=${LIBNAME}${SHLIBSUFFIX}
  538.     SO_NAME  =${LIBNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX}
  539.     REAL_NAME=${LIBNAME}${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}${SHLIBSUFFIX}
  540.     
  541.     RESLIB_LINK_NAME=${RESLIBNAME}${SHLIBSUFFIX}
  542.     RESLIB_SO_NAME  =${RESLIBNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX}
  543.     RESLIB_REAL_NAME=${RESLIBNAME}${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}${SHLIBSUFFIX}        
  544. endif
  545. ifeq (${PLATFORM}, OS390)
  546. #
  547. # LINK_NAME=libxerces-c.dll
  548. # SO_NAME  =libxerces-c20.dll
  549. # REAL_NAME=libxerces-c2_0_0.dll
  550. #
  551. LINK_NAME=${LIBNAME}${SHLIBSUFFIX}
  552. SO_NAME  =${LIBNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX}
  553. REAL_NAME=${LIBNAME}${VER}${SHLIBSUFFIX}
  554.     RESLIB_LINK_NAME=${RESLIBNAME}${SHLIBSUFFIX}
  555.     RESLIB_SO_NAME  =${RESLIBNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX}
  556.     RESLIB_REAL_NAME=${RESLIBNAME}${VER}${SHLIBSUFFIX}
  557. endif
  558. ifeq (${PLATFORM}, CYGWIN)
  559. #
  560. # LINK_NAME=libxerces-c.dll
  561. # SO_NAME  =cygxerces-c20.dll
  562. # REAL_NAME=libxerces-c2_0_0.dll
  563. #
  564. LINK_NAME=${LIBNAME}${SHLIBSUFFIX}
  565. SO_NAME  =${CYGNAME}${SO_TARGET_VERSION}${SHLIBSUFFIX}
  566. REAL_NAME=${LIBNAME}${VER}${SHLIBSUFFIX}
  567. endif
  568. ifeq (${PLATFORM}, MACOSX)
  569.     #
  570.     # LINK_NAME=libxerces-c.{suffix}
  571.     # SO_NAME  =libxerces-c.20.{suffix}
  572.     # REAL_NAME=libxerces-c.20.0.{suffix}
  573.     #
  574.     LINK_NAME=${LIBNAME}${SHLIBSUFFIX}
  575.     SO_NAME  =${LIBNAME}.${SO_TARGET_VERSION}${SHLIBSUFFIX}
  576.     REAL_NAME=${LIBNAME}.${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}${SHLIBSUFFIX}
  577. endif
  578. ifeq (${PLATFORM}, QNX)
  579.     #
  580.     # LINK_NAME=libxerces-c.{suffix}
  581.     # SO_NAME  =libxerces-c.20.{suffix}
  582.     # REAL_NAME=libxerces-c.20.{suffix}
  583.     #
  584. LINK_NAME=${LIBNAME}${SHLIBSUFFIX}
  585. SO_NAME  =${LIBNAME}${SHLIBSUFFIX}.${SO_TARGET_VERSION}
  586. REAL_NAME=$(SO_NAME)
  587. endif
  588. # Default naming (if no special cases above)
  589. ifeq ($(SO_NAME),) 
  590. #
  591. # LINK_NAME=libxerces-c.so
  592. # SO_NAME  =libxerces-c.so.20
  593. # REAL_NAME=libxerces-c.so.20.0
  594. #
  595. LINK_NAME=${LIBNAME}${SHLIBSUFFIX}
  596. SO_NAME  =${LIBNAME}${SHLIBSUFFIX}.${SO_TARGET_VERSION}
  597. REAL_NAME=${LIBNAME}${SHLIBSUFFIX}.${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}
  598.     RESLIB_LINK_NAME=${RESLIBNAME}${SHLIBSUFFIX}
  599.     RESLIB_SO_NAME  =${RESLIBNAME}${SHLIBSUFFIX}.${SO_TARGET_VERSION}
  600.     RESLIB_REAL_NAME=${RESLIBNAME}${SHLIBSUFFIX}.${SO_TARGET_VERSION}.${SO_TARGET_VERSION_MAJOR}
  601. endif
  602. FQ_LINK_NAME=${XML_LIB_DIR}/${LINK_NAME}
  603. FQ_SO_NAME  =${XML_LIB_DIR}/${SO_NAME}
  604. FQ_REAL_NAME=${XML_LIB_DIR}/${REAL_NAME}
  605. FQ_RESLIB_LINK_NAME=${XML_LIB_DIR}/${RESLIB_LINK_NAME}
  606. FQ_RESLIB_SO_NAME  =${XML_LIB_DIR}/${RESLIB_SO_NAME}
  607. FQ_RESLIB_REAL_NAME=${XML_LIB_DIR}/${RESLIB_REAL_NAME}
  608. ###################### STANDARD TOOLS #############################
  609. ifeq (${PLATFORM}, OS400)
  610. CP = -cp -fph
  611. else
  612. CP = -cp -fp
  613. endif
  614. ifeq (${PLATFORM}, FREEBSD)
  615. CP = -cp -p
  616. endif
  617. RM = -rm -f
  618. CAT = cat
  619. AR = ar -cqv
  620. CD = cd
  621. CC1     = ${CXX} ${PLATFORM_COMPILE_OPTIONS}
  622. JUST_CC = ${CC} -D${PLATFORM}
  623. ECHO = echo
  624. CREATE_DEPENDS_FILE = echo "" > depends
  625. MAKE_DEPEND = ${CC1} -E -xM
  626. ##################### HELPER MACROS ###############################
  627. DEPFILE = depends
  628. LINKLIB = $(XML_LIB_DIR)
  629. ######################### SUFFIX RULES ############################
  630. .SUFFIXES:
  631. .SUFFIXES: .cpp .c .$(TO)
  632. # Tell make where the object files are for proper resolution of suffix rules
  633. vpath %.$(TO) $(XML_OBJ_DIR)
  634. .cpp.$(TO):
  635. $(CC1) -c $(XML_INCL) $(XML_BUILD_OPTIONS) $(XML_DEF) $(EXTRA_COMPILE_OPTIONS) -o $(XML_OBJ_DIR)/$(@) $(<)
  636. .c.$(TO):
  637. $(JUST_CC) -c $(XML_INCL) $(XML_BUILD_OPTIONS) $(XML_DEF) $(EXTRA_COMPILE_OPTIONS) -o $(XML_OBJ_DIR)/$(@) $(<)
  638. .C.$(TO):
  639. $(JUST_CC) -c $(XML_INCL) $(XML_BUILD_OPTIONS) $(XML_DEF) $(EXTRA_COMPILE_OPTIONS) -o $(XML_OBJ_DIR)/$(@) $(<)