![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /proc/thread-self/root/usr/share/boost-build/src/tools/ |
Upload File : |
# Copyright Vladimir Prus 2004. # Copyright Toon Knapen 2004. # Copyright Catherine Morton 2015. # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt # or copy at http://www.boost.org/LICENSE_1_0.txt) # # Boost.Build V2 toolset for the IBM XL C++ compiler # import toolset : flags ; import feature ; import common ; import generators ; import os ; feature.extend toolset : xlcpp ; toolset.inherit xlcpp : unix ; generators.override xlcpp.prebuilt : builtin.prebuilt ; generators.override xlcpp.searched-lib-generator : searched-lib-generator ; # Configure the xlcpp toolset rule init ( version ? : command * : options * ) { local condition = [ common.check-init-parameters xlcpp : version $(version) ] ; command = [ common.get-invocation-command xlcpp : xlC : $(command) : "/usr/xlcpp/bin/xlC" ] ; common.handle-options xlcpp : $(condition) : $(command) : $(options) ; } # Declare generators generators.register-c-compiler xlcpp.compile.c : C : OBJ : <toolset>xlcpp ; generators.register-c-compiler xlcpp.compile.c++ : CPP : OBJ : <toolset>xlcpp ; # Allow C++ style comments in C files flags xlcpp CFLAGS : -qnoxlcompatmacros ; # Declare flags flags xlcpp CFLAGS <optimization>off : -qNOOPTimize ; flags xlcpp CFLAGS <optimization>speed : ; flags xlcpp CFLAGS <optimization>space : -O2 -qcompact ; # Discretionary inlining (not recommended) flags xlcpp CFLAGS <inlining>off : -qnoinline ; flags xlcpp CFLAGS <inlining>on : -qinline ; #flags xlcpp CFLAGS <inlining>full : -qinline ; flags xlcpp CFLAGS <inlining>full : ; # Exception handling flags xlcpp C++FLAGS <exception-handling>off : -qnoeh ; flags xlcpp C++FLAGS <exception-handling>on : -qeh ; # Run-time Type Identification flags xlcpp C++FLAGS <rtti>off : -qnortti ; flags xlcpp C++FLAGS <rtti>on : -qrtti ; # Enable 64-bit memory addressing model flags xlcpp CFLAGS <address-model>64 : -q64 ; flags xlcpp LINKFLAGS <address-model>64 : -q64 ; flags xlcpp ARFLAGS <target-os>aix/<address-model>64 : -X 64 ; # Use absolute path when generating debug information flags xlcpp CFLAGS <debug-symbols>on : -g -qfullpath ; flags xlcpp LINKFLAGS <debug-symbols>on : -g -qfullpath ; flags xlcpp LINKFLAGS <debug-symbols>off : -s ; if [ os.name ] = AIX { flags xlcpp.compile C++FLAGS : -qfuncsect ; # The -bnoipath strips the prepending (relative) path of libraries from # the loader section in the target library or executable. Hence, during # load-time LIBPATH (identical to LD_LIBRARY_PATH) or a hard-coded # -blibpath (*similar* to -lrpath/-lrpath-link) is searched. Without # this option, the prepending (relative) path + library name is # hard-coded in the loader section, causing *only* this path to be # searched during load-time. Note that the AIX linker does not have an # -soname equivalent, this is as close as it gets. # # The above options are definitely for AIX 5.x, and most likely also for # AIX 4.x and AIX 6.x. For details about the AIX linker see: # http://download.boulder.ibm.com/ibmdl/pub/software/dw/aix/es-aix_ll.pdf # flags xlcpp.link LINKFLAGS <link>shared : -bnoipath ; # Run-time linking flags xlcpp.link EXE-LINKFLAGS <link>shared : -brtl ; } else { # Linux PPC flags xlcpp.compile CFLAGS <link>shared : -qpic=large ; flags xlcpp FINDLIBS : rt ; flags xlcpp.compile OPTIONS <local-visibility>hidden : -qvisibility=hidden ; flags xlcpp.compile OPTIONS <local-visibility>protected : -qvisibility=protected ; flags xlcpp.compile OPTIONS <local-visibility>global : -qvisibility=default ; } # Profiling flags xlcpp CFLAGS <profiling>on : -pg ; flags xlcpp LINKFLAGS <profiling>on : -pg ; flags xlcpp.compile OPTIONS <cflags> ; flags xlcpp.compile.c++ OPTIONS <cxxflags> ; flags xlcpp DEFINES <define> ; flags xlcpp UNDEFS <undef> ; flags xlcpp HDRS <include> ; flags xlcpp STDHDRS <sysinclude> ; flags xlcpp.link OPTIONS <linkflags> ; flags xlcpp ARFLAGS <arflags> ; flags xlcpp LIBPATH <library-path> ; flags xlcpp NEEDLIBS <library-file> ; flags xlcpp FINDLIBS <find-shared-library> ; flags xlcpp FINDLIBS <find-static-library> ; # Select the compiler name according to the threading model. flags xlcpp VA_C_COMPILER <threading>single : xlc ; flags xlcpp VA_C_COMPILER <threading>multi : xlc ; flags xlcpp VA_CXX_COMPILER <threading>single : xlC ; flags xlcpp VA_CXX_COMPILER <threading>multi : xlC ; SPACE = " " ; flags xlcpp.link.dll HAVE_SONAME <target-os>linux : "" ; actions xlcpp.link bind NEEDLIBS { $(VA_CXX_COMPILER) $(EXE-LINKFLAGS) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS) $(USER_OPTIONS) } actions xlcpp.link.dll bind NEEDLIBS { xlC -G $(LINKFLAGS) -o "$(<[1])" $(HAVE_SONAME)-Wl,-soname$(SPACE)-Wl,$(<[-1]:D=) -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS) $(USER_OPTIONS) } actions xlcpp.compile.c { $(VA_C_COMPILER) -c $(OPTIONS) $(USER_OPTIONS) -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)" } actions xlcpp.compile.c++ { $(VA_CXX_COMPILER) -c $(OPTIONS) $(USER_OPTIONS) -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)" } actions updated together piecemeal xlcpp.archive { ar $(ARFLAGS) ru "$(<)" "$(>)" }