| #************************************************************** |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| #************************************************************** |
| |
| |
| |
| PRJ=. |
| |
| PRJNAME=so_stlport |
| TARGET=so_stlport |
| |
| # --- Settings ----------------------------------------------------- |
| |
| .INCLUDE : settings.mk |
| |
| .IF "$(USE_SYSTEM_STL)"=="YES" |
| |
| .IF "$(OS)"=="SOLARIS" && "$(COM)"!="GCC" |
| # System STL when building with SunStudio is just a version of STLport |
| # which comes with the compiler |
| all: |
| @echo "Nothing to do" |
| .ELSE #"$(OS)"=="SOLARIS" && "$(COM)"!="GCC" |
| # |
| # If you choose to build without stlport, some headers will be used to bring the |
| # sgi extensions into the std namespace: |
| $(INCCOM)$/stlport$/functional \ |
| $(INCCOM)$/stlport$/hash_map \ |
| $(INCCOM)$/stlport$/hash_set \ |
| $(INCCOM)$/stlport$/numeric \ |
| $(INCCOM)$/stlport$/slist \ |
| $(INCCOM)$/stlport$/rope \ |
| $(INCCOM)$/stlport$/vector: systemstl$/$$(@:f) |
| $(MKDIRHIER) $(@:d) |
| $(COPY) $< $@ |
| .ENDIF #"$(OS)"=="SOLARIS" && "$(COM)"!="GCC" |
| |
| .ELSE # "$(USE_SYSTEM_STL)" |
| |
| # --- Files -------------------------------------------------------- |
| .EXPORT : CC CXX |
| .IF "$(COMID)"=="gcc3" |
| TARFILE_NAME=STLport-4.5 |
| TARFILE_MD5=18f577b374d60b3c760a3a3350407632 |
| PATCH_FILES=STLport-4.5.patch STLport-4.5-gcc43_warnings.patch |
| .ELIF "$(GUI)"=="WNT" |
| .IF "$(CCNUMVER)"<="001300000000" |
| TARFILE_NAME=STLport-4.0 |
| TARFILE_MD5=c441926f3a552ed3e5b274b62e86af16 |
| PATCH_FILES=STLport-4.0.patch |
| .ELSE |
| TARFILE_NAME=STLport-4.5-0119 |
| TARFILE_MD5=7376930b0d3f3d77a685d94c4a3acda8 |
| PATCH_FILES=STLport-4.5-0119.patch |
| .ENDIF |
| .ELSE |
| TARFILE_NAME=STLport-4.0 |
| TARFILE_MD5=c441926f3a552ed3e5b274b62e86af16 |
| PATCH_FILES=STLport-4.0.patch STLport-4.0-sunstudio12u1.patch |
| # To disable warnings from within STLport headers on unxsoli4 and |
| # unxsols4, STLport-4.0.patch had to be extended mechanically by |
| # |
| # cd unxsol.../misc/build/STLport-4.0/stlport && \ |
| # find . -type f -exec sed -i \ |
| # -e 's/^\([ \t]*__STL_BEGIN_NAMESPACE[ \t]*\)$/#if defined \ |
| # __SUNPRO_CC\n#pragma disable_warn\n#endif\n&/' \ |
| # -e 's/^\([ \t]*__STL_END_NAMESPACE[ \t]*\)$/&\n#if defined \ |
| # __SUNPRO_CC\n#pragma enable_warn\n#endif/' {} \; |
| # |
| # (causing lots of files to become modified) and by additionally |
| # changing unxsol.../misc/build/STLport-4.0/stlport/math.h, |
| # unxsol.../misc/build/STLport-4.0/stlport/stl/_config.h, |
| # unxsol.../misc/build/STLport-4.0/stlport/stl/_list.h, and |
| # unxsol.../misc/build/STLport-4.0/stlport/stl/type_traits.h manually. |
| # (Obviously due to the way the C++ compiler generates code for |
| # instantiations of inline function templates from STLport headers, it |
| # does not work to simply add "#pragma disable_warn" to stl/_prolog.h |
| # and "#pragma enable_warn" to stl/_epilog.h, as seemingly some internal |
| # STLport headers are read in by the compiler only at the end of a |
| # compilation unit, outside the scope of stl/_prolog.h and |
| # stl/_epilog.h.) |
| .ENDIF |
| |
| ADDITIONAL_FILES=src$/gcc-3.0.mak src$/gcc-3.0-freebsd.mak src$/sunpro8.mak src$/sunpro11.mak src$/gcc-3.0-mingw.mak \ |
| src$/gcc-3.0-os2.mak src$/gcc-3.0-os2.def src$/common_macros_os2.mak |
| |
| |
| CONFIGURE_ACTION=none |
| CONFIGURE_FLAGS= |
| |
| BUILD_DIR=src |
| |
| .IF "$(COM)"=="MSC" |
| BUILD_ACTION=nmake |
| .IF "$(CCNUMVER)"<="001400000000" |
| BUILD_FLAGS=-f vc7.mak EXFLAGS="/EHsc" |
| .ELSE # "$(CCNUMVER)"<="001400000000" |
| BUILD_FLAGS=-f vc7.mak EXFLAGS="/EHa /Zc:wchar_t-" CCNUMVER=$(CCNUMVER) |
| .ENDIF # "$(CCNUMVER)"<="001400000000" |
| .ENDIF |
| |
| .IF "$(COM)"=="GCC" |
| .IF "$(COMID)"=="gcc3" |
| # FreeBSD needs a special makefile |
| .IF "$(OS)"=="FREEBSD" |
| BUILD_FLAGS=-f gcc-3.0-freebsd.mak |
| .ELIF "$(OS)"=="OS2" |
| BUILD_FLAGS=-f gcc-3.0-os2.mak |
| .ELIF "$(GUI)"=="WNT" |
| BUILD_FLAGS=-f gcc-3.0-mingw.mak |
| .ELSE |
| BUILD_FLAGS=-f gcc-3.0.mak |
| .ENDIF |
| .ELSE # "$(COMID)"=="gcc3" |
| .IF "$(OS)"=="FREEBSD" |
| BUILD_FLAGS=-f gcc-freebsd.mak |
| .ELSE |
| BUILD_FLAGS=-f gcc.mak |
| .ENDIF |
| .ENDIF # "$(COMID)"=="gcc3" |
| BUILD_ACTION=$(GNUMAKE) |
| # build in parallel |
| BUILD_FLAGS+= -j$(MAXPROCESS) |
| .ENDIF |
| .IF "$(HAVE_LD_HASH_STYLE)" == "TRUE" |
| CXX+= -Wl,--hash-style=both |
| .ENDIF |
| |
| .IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)" == "TRUE" |
| CXX+= -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo |
| .ENDIF |
| |
| .IF "$(COM)"=="C52" |
| BUILD_ACTION=make |
| .IF "$(CCNUMVER)">="00050008" |
| BUILD_FLAGS=-f sunpro11.mak |
| .ELIF "$(CCNUMVER)">="00050005" |
| BUILD_FLAGS=-f sunpro8.mak |
| .ELSE |
| BUILD_FLAGS=-f sunpro6.mak |
| .ENDIF # "$(CCNUMVER)">="00050008" |
| |
| OUT2INC= \ |
| stlport$/SC5$/*.SUNWCCh |
| .ENDIF |
| |
| OUTDIR2INC= \ |
| stlport |
| |
| .IF "$(GUI)"=="WNT" |
| .IF "$(COM)"=="GCC" |
| |
| OUT2LIB= \ |
| lib$/lib*_static.a |
| |
| OUT2BIN= \ |
| lib$/*.dll |
| |
| .ELSE |
| |
| OUT2LIB= \ |
| lib$/*.lib |
| |
| OUT2BIN= \ |
| lib$/*.dll \ |
| lib$/*.pdb |
| |
| .ENDIF # "$(COM)"=="GCC" |
| |
| .ELIF "$(GUI)"=="OS2" |
| |
| OUT2LIB= lib$/*.lib |
| OUT2BIN= lib$/*.dll |
| |
| .ELSE # "$(GUI)"=="WNT" |
| |
| OUT2LIB= \ |
| lib$/lib* |
| |
| .ENDIF # "$(GUI)"=="WNT" |
| |
| # --- Targets ------------------------------------------------------ |
| |
| .IF "$(STLPORT4)"!="NO_STLPORT4" |
| all : |
| @echo " An already available installation of STLport has been chosen in the configure process." |
| @echo " Therefore the version provided here does not need to be built in addition." |
| .ELIF "$(OS)"=="MACOSX" |
| all: |
| @echo '--with-stlport=yes is not supported on Mac OS X' |
| false |
| .ENDIF |
| |
| .INCLUDE : set_ext.mk |
| .INCLUDE : target.mk |
| .INCLUDE : tg_ext.mk |
| |
| .IF "$(GUI)"=="WNT" |
| .IF "$(COM)"!="GCC" |
| .IF "$(CCNUMVER)"<="001300000000" |
| |
| $(MISC)$/$(TARFILE_ROOTDIR) : avoid_win32_patches |
| avoid_win32_patches : |
| @$(ECHONL) |
| @echo ERROR! this module can't use automated patch creation |
| @echo on windows. |
| @$(ECHONL) |
| force_dmake_to_error |
| |
| $(PACKAGE_DIR)$/so_custom_patch : $(PACKAGE_DIR)$/$(PATCH_FLAG_FILE) |
| win32_custom.bat $(PACKAGE_DIR) $(BACK_PATH) && $(TOUCH) $@ |
| |
| $(PACKAGE_DIR)$/$(CONFIGURE_FLAG_FILE) : $(PACKAGE_DIR)$/so_custom_patch |
| |
| .IF "$(USE_NEW_SDK)"!="" |
| $(PACKAGE_DIR)$/win32_sdk_patch : $(PACKAGE_DIR)$/$(PATCH_FLAG_FILE) |
| win32_sdk.bat $(PACKAGE_DIR) $(BACK_PATH) && $(TOUCH) $@ |
| |
| $(PACKAGE_DIR)$/$(CONFIGURE_FLAG_FILE) : $(PACKAGE_DIR)$/win32_sdk_patch |
| .ENDIF # "$(USE_NEW_SDK)"!="" |
| .ENDIF # COMVER<=001300000000 |
| .ENDIF "$(COM)"=="GCC" |
| .ENDIF # "$(GUI)"=="WNT" |
| |
| .ENDIF # "$(USE_SYSTEM_STL)" |