CDF II
CDF KITS
source navigation ]
diff markup ]
identifier search ]
freetext search ]
file search ]
 
Architecture: i386 ]
Version: 4.10.4 ] [ 4.10.5 ] [ 4.8.4 ] [ 4.8.4l3s ] [ 4.8.5 ] [ 4.9.0 ] [ 4.9.1 ] [ 4.9.1.hpt3 ] [ 4.9.1hpt3 ] [ 4.9.1top1 ] [ 5.0.0 ] [ 5.1.0 ] [ 5.1.0beamonly ] [ 5.1.1 ] [ 5.2.0 ] [ 5.3.0 ] [ 5.3.1 ] [ 5.3.1dsp ] [ 5.3.3 ] [ 5.3.3_nt ] [ 5.3.4 ] [ 6.1.1 ] [ 6.1.1b ] [ 6.1.2 ] [ 6.1.3 ] [ 6.1.4 ] [ 6.1.4int3 ] [ 6.1.4mc ] [ 6.1.4mc_a ] [ 6.1.6 ] [ development ]

001 MAIN=BTagObjects
002 
003 ARCH         := $(shell root-config --arch)
004 
005 CXX           =
006 DllSuf        = so
007 
008 ROOTCFLAGS   := $(shell root-config --cflags)
009 ROOTLIBS     := $(shell root-config --libs)
010 ROOTGLIBS    := $(shell root-config --glibs)
011 
012 ###########################################################################
013 ## ##################################################################### ##
014 ## ## We have (more or less) taken these flags out of                 ## ##
015 ## ## $ROOTSYS/test/Makefile.arch.  If your architechture/compiler    ## ##
016 ## ## is not listed, try grabbing the necessary flags from that file. ## ##
017 ## ##################################################################### ##
018 ###########################################################################
019 
020 
021 # Cygwin
022 ifeq ($(ARCH),win32gcc)
023 # Windows with gcc 3.3
024 DllSuf        = dll
025 CXX           = g++
026 CXXFLAGS      = -O2 -Wall -Woverloaded-virtual -I/usr/X11R6/include 
027 LD            = g++
028 LDFLAGS       = --no_exceptions -shared
029 SOFLAGS       = -shared -D_DLL -Wl,--export-all-symbols
030 EXPLLINKLIBS  = $(ROOTLIBS) $(ROOTGLIBS)
031 endif
032 
033 # gcc compiler (CDF Gen 6)
034 ifeq ($(ARCH),linux)
035 # Linux with egcs, gcc 2.9x, gcc 3.x (>= RedHat 5.2)
036 CXX           = g++
037 CXXFLAGS      = -O -Wall -fPIC
038 LD            = g++
039 LDFLAGS       = -O --no_exceptions -shared
040 SOFLAGS       = -shared
041 endif
042 
043 # Kai compiler (CDF Gen 5)
044 ifeq ($(ARCH),linuxkcc)
045 # Linux with the KAI compiler
046 CXX           = KCC --one_instantiation_per_object
047 CXXFLAGS      = -O -fPIC +K0
048 LD            = KCC
049 LDFLAGS       = -O $(shell root-config --cflags) --no_exceptions -shared
050 SOFLAGS       =
051 endif
052 
053 # MacOS X 10.4.5 (gcc 4.0, ROOT 5.10_00)
054 ifeq ($(ARCH),macosx)
055 ifndef MACOSX_DEPLOYMENT_TARGET
056 $(error You must define MACOSX_DEPLOYMENT_TARGET first, e.g. "export MACOSX_DEPLOYMENT_TARGET=10.4")
057 endif
058 MACOSX_DEPLOYMENT_TARGET = 10.4
059 DllSuf            = dylib
060 CXX               = g++
061 CXXFLAGS          = -g -pipe -W -Wall -Woverloaded-virtual -fsigned-char -fno-common -D__REGEXP -DG__UNIX -DG__SHAREDLIB -DG__ROOT -DG__REDIRECTIO -DG__OSFDLL
062 LD                = g++
063 LDFLAGS           = -g -dynamiclib -single_module -undefined dynamic_lookup -install_name ../shlib/lib$(MAIN).$(DllSuf)
064 LDFLAGSROOT       = -Xlinker -bind_at_load -flat_namespace -bundle
065 SHAREDROOT        = ../shlib/lib$(MAIN).so
066 EXPLLINKLIBS      = $(ROOTGLIBS)
067 endif
068 
069 ifeq ($(CXX),)
070 $(error $(ARCH) invalid architecture)
071 endif
072 
073 
074 SHARED=../shlib/lib$(MAIN).$(DllSuf)
075 
076 INCFLAGS =-Iinclude -I../include
077 CXXFLAGS += -D__NO_CDFSOFT__ $(shell root-config --cflags) $(INCFLAGS)
078 
079 #
080 
081 SRCS =  $(wildcard src/*.cc) 
082 
083 INCS =  $(wildcard include/*.hh)
084 
085 DEPS =  $(patsubst src/%, objects/%, \
086                   $(patsubst %.cc, %.d, $(wildcard src/*.cc)) )
087 
088 # We want dictionaries only for classes that have _linkdef.h files
089 DICTOBS =  $(patsubst %_linkdef.h, %.o, \
090                       $(patsubst dict/%, objects/dict_%, \
091                           $(wildcard dict/*_linkdef.h) ) )
092 
093 OBJS =   $(patsubst src/%, objects/%, \
094                     $(patsubst %.cc, %.o, $(SRCS)) )
095 
096 
097 OBJS += $(DICTOBS)
098 
099 
100 all:    shared
101 
102 # MacOS needs different builds for the shared library to be linked (*.dylib) 
103 # and the shared library to be loaded into ROOT (*.so)
104 ifeq ($(ARCH),macosx)
105 shared: $(SHARED) $(SHAREDROOT)
106 
107 $(SHARED): $(OBJS)
108         $(LD) $(LDFLAGS) $(OBJS) -o $(SHARED)
109 
110 $(SHAREDROOT): $(OBJS)
111         $(LD) $(LDFLAGSROOT) $(OBJS) $(EXPLLINKLIBS) -o $(SHAREDROOT)
112 
113 else
114 shared: $(SHARED)
115 $(SHARED): $(OBJS)
116         $(LD) $(LDFLAGS) $(OBJS) $(EXPLLINKLIBS) -o $(SHARED) 
117 endif
118 
119 
120 echo:
121         @echo For Debugging:
122         @echo .
123         @echo SRCS: $(SRCS)
124         @echo .
125         @echo INCLUDES: $(INCS)
126         @echo .
127         @echo OBJECTS: $(OBJS)
128         @echo .
129         @echo DEPS: $(DEPS)
130         @echo .
131         @echo DICTOBS: $(DICTOBS)
132 
133 objects/dict_%.o: include/%.hh dict/%_linkdef.h
134         @echo "Generating dictionary for $< $@"
135         $(ROOTSYS)/bin/rootcint -f $(patsubst %.o, %.C, $@) -c -Idict -Iinclude -I../include -D__NO_CDFSOFT__ $(notdir $^) 
136         $(CXX) -c $(CXXFLAGS) -o $@ $(patsubst %.o, %.C, $@)
137 
138 objects/%.o: src/%.cc include/%.hh
139         $(CXX) $(CXXFLAGS) -c -o $@ $<
140 
141 objects/%.d: src/%.cc
142         @echo "Generating dependencies for $<"
143         @set -e; $(CXX) -M $(CXXFLAGS) $< \
144         | sed 's%\($*\)\.o[ :]*%\1.o $@ : %g' > $@; \
145         [ -s $@ ] || rm -f $@
146 
147 clean:
148         @echo "Cleaning everything..."
149         @rm -f objects/*.d objects/*.o core* objects/dict_* $(SHARED)
150 
151 
152 include $(DEPS)

source navigation ] diff markup ] identifier search ] freetext search ] file search ]

This page was automatically generated by the LXR engine.
The LXR team
Valid HTML 4.01!

Send problems or questions to cdfcode@fnal.gov