mh-beos revision c73f511526464f8e56c242df80552e9b0d94ae3d
167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe## -*-makefile-*- 267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe## BeOS-specific setup 367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe## Copyright (c) 2003-2006, International Business Machines Corporation and 467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe## others. All Rights Reserved. 567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe## 667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe## Original author: Andrew Bachmann 767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe## Commands to generate dependency files 967bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeGEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS) 1067bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeGEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS) 1167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 1267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# Safe optimizations 1367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#OPTIMIZATIONS= -fdefault-inline -fdefer-pop -fforce-mem -fforce-addr \ 1467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# -finline -finline-functions \ 1567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# -fkeep-inline-functions -fkeep-static-consts -fbranch-count-reg \ 1667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# -ffunction-cse -fstrength-reduce -fthread-jumps -fcse-follow-jumps \ 1767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# -fcse-skip-blocks -frerun-cse-after-loop -frerun-loop-opt \ 1867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# -fexpensive-optimizations -foptimize-register-move -fregmove \ 1967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# -fschedule-insns -fschedule-insns2 -ffloat-store -funroll-loops \ 2067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# -fmove-all-movables -freduce-all-givs -fpeephole \ 2167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# -funroll-all-loops -ffunction-sections -fdata-sections 2267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 2367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# BeOS gccs (geekgadgets + 2.95.3) have this old bug: 2467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# after this: const wchar_t x[] = L"foo"; 2567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# x[2] is "optimized" into: (wchar_t)((char *)x)[2] (== 0) 2667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# 2767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# see also: http://gcc.gnu.org/ml/gcc-patches/2000-09/msg00454.html 2867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# 2967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# Unfortunately this behavior isn't controlled by a flag so we can't 3067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# use any O optimizations at all. (the behavior kicks in at -O1) 3167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 3267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# Optimizations aren't currently defined in the mh files. 3367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# So Don't override any flags set by the user or runConfigureICU. 3467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#CFLAGS += $(OPTIMIZATIONS) 3567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe#CXXFLAGS += $(OPTIMIZATIONS) 3667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 3767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# Use -nostart instead of -shared 3867bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeSHLIB.c= $(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -nostart 3967bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeSHLIB.cc= $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -nostart 4067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 4167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe## Flags for position independent code 4267bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeSHAREDLIBCFLAGS = -fPIC 4367bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeSHAREDLIBCXXFLAGS = -fPIC 4467bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeSHAREDLIBCPPFLAGS = -DPIC 4567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 4667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe## Additional flags when building libraries and with threads 4767bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeLIBCPPFLAGS = 4867bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeTHREADSCPPFLAGS = 4967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 5067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe## Compiler switch to embed a runtime search path 5167bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeLD_RPATH= 5267bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeLD_RPATH_PRE = -Wl,-rpath, 5367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 5467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe## Compiler switch to embed a library name 5567bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeLD_SONAME = -Wl,-soname -Wl,$(notdir $(MIDDLE_SO_TARGET)) 5667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 5767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe## Shared object suffix 5867bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeSO = so 5967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe## Non-shared intermediate object suffix 6067bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeSTATIC_O = ao 6167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 6267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe## Compilation rules 6367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe%.$(STATIC_O): $(srcdir)/%.c 6467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< 6567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe%.o: $(srcdir)/%.c 6667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< 6767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 6867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe%.$(STATIC_O): $(srcdir)/%.cpp 6967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< 7067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe%.o: $(srcdir)/%.cpp 7167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< 7267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 7367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 7467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe## Dependency rules 7567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe%.d: $(srcdir)/%.c 7667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe @echo "generating dependency information for $<" 7767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe @$(SHELL) -ec '$(GEN_DEPS.c) $< \ 7867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \ 7967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe [ -s $@ ] || rm -f $@' 8067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 8167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe%.d: $(srcdir)/%.cpp 8267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe @echo "generating dependency information for $<" 8367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe @$(SHELL) -ec '$(GEN_DEPS.cc) $< \ 8467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \ 8567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe [ -s $@ ] || rm -f $@' 8667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 8767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe## Versioned libraries rules 8867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 8967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION) 9067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe $(RM) $@ && ln -s ${<F} $@ 9167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe%.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR) 9267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe $(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@ 9367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 9467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe## Bind internal references 9567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 9667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# LDflags that pkgdata will use 9767bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeBIR_LDFLAGS= -Wl,-Bsymbolic 9867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 9967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# Dependencies [i.e. map files] for the final library 10067bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeBIR_DEPS= 10167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 10267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe# Use LIBRARY_PATH instead of LD_LIBRARY_PATH 10367bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeLDLIBRARYPATH_ENVVAR= LIBRARY_PATH 10467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe 105cb1125b0b197278894896af14fe8ecdf7b92756dJens Axboe## End BeOS-specific setup 106cb1125b0b197278894896af14fe8ecdf7b92756dJens Axboe 107cb1125b0b197278894896af14fe8ecdf7b92756dJens Axboe