| 1 | #***************************************************************************** | 
| 2 | # | 
| 3 | # FILE NAME:    $Id: Makefile,v 1.3 2008/09/23 09:21:47 mocchiut Exp $ | 
| 4 | # VERSION: | 
| 5 | # AUTHOR:       Nergal S.r.l. | 
| 6 | # DATE: | 
| 7 | # | 
| 8 | # DESCRIPTION:  base Makefile | 
| 9 | # | 
| 10 | # REVISION HISTORY: | 
| 11 | # | 
| 12 | # Version     Date      Author         Change Description | 
| 13 | # | 
| 14 | #*****************************************************************************/ | 
| 15 |  | 
| 16 |  | 
| 17 | #------------------------------------------------------------------------------ | 
| 18 | include $(BASEDIR)/event/Make.def | 
| 19 | #------------------------------------------------------------------------------ | 
| 20 |  | 
| 21 | CFLAGS += -I $(EVNT_DIR_INC) -I $(ROOT_DIR_INC) -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -fPIC -DPIC | 
| 22 |  | 
| 23 | ROOTEVENTDICT =  EventDict | 
| 24 |  | 
| 25 | CXXSRCS =       NullAlgorithm.cpp          \ | 
| 26 | yodaversion.cpp            \ | 
| 27 | PamelaRun.cpp              \ | 
| 28 | RunInfoYoda.cpp                \ | 
| 29 | $(ROOTEVENTDICT).cpp       \ | 
| 30 | SubPacket.cpp              \ | 
| 31 | PacketType.cpp             \ | 
| 32 | SubDetector.cpp            \ | 
| 33 | Algorithm.cpp              \ | 
| 34 | AlgorithmInfo.cpp          \ | 
| 35 | EventHeader.cpp            \ | 
| 36 | PscuHeader.cpp             \ | 
| 37 | EventCounter.cpp           \ | 
| 38 | PscuEvent.cpp              \ | 
| 39 | CalibCalPulse1Event.cpp    \ | 
| 40 | CalibCalPulse2Event.cpp    \ | 
| 41 | CalibTrkBothEvent.cpp      \ | 
| 42 | CalibTrk1Event.cpp         \ | 
| 43 | CalibTrk2Event.cpp         \ | 
| 44 | CalibTofEvent.cpp          \ | 
| 45 | CalibS4Event.cpp           \ | 
| 46 | CalibCalPedEvent.cpp       \ | 
| 47 | Calib1_Ac1Event.cpp        \ | 
| 48 | Calib1_Ac2Event.cpp        \ | 
| 49 | Calib2_Ac1Event.cpp        \ | 
| 50 | Calib2_Ac2Event.cpp        \ | 
| 51 | CalibCalEvent.cpp          \ | 
| 52 | RunHeaderEvent.cpp         \ | 
| 53 | RunTrailerEvent.cpp        \ | 
| 54 | CalibHeaderEvent.cpp       \ | 
| 55 | CalibTrailerEvent.cpp      \ | 
| 56 | InitHeaderEvent.cpp        \ | 
| 57 | InitTrailerEvent.cpp       \ | 
| 58 | EventTrkEvent.cpp          \ | 
| 59 | ForcedFECmdEvent.cpp       \ | 
| 60 | Ac1InitEvent.cpp           \ | 
| 61 | CalInitEvent.cpp           \ | 
| 62 | TrkInitEvent.cpp           \ | 
| 63 | TofInitEvent.cpp           \ | 
| 64 | TrgInitEvent.cpp           \ | 
| 65 | NdInitEvent.cpp            \ | 
| 66 | S4InitEvent.cpp            \ | 
| 67 | Ac2InitEvent.cpp           \ | 
| 68 | CalAlarmEvent.cpp          \ | 
| 69 | Ac1AlarmEvent.cpp          \ | 
| 70 | TrkAlarmEvent.cpp          \ | 
| 71 | TrgAlarmEvent.cpp          \ | 
| 72 | TofAlarmEvent.cpp          \ | 
| 73 | S4AlarmEvent.cpp           \ | 
| 74 | Ac2AlarmEvent.cpp          \ | 
| 75 |  | 
| 76 | CSRCS=          CRC.c                      \ | 
| 77 | DirectoryStructure.c | 
| 78 |  | 
| 79 |  | 
| 80 | #------------------------------------------------------------------------------ | 
| 81 |  | 
| 82 | TARGETLIB = $(EVNT_A) | 
| 83 |  | 
| 84 | #------------------------------------------------------------------------------ | 
| 85 |  | 
| 86 |  | 
| 87 | all: dynamic static | 
| 88 |  | 
| 89 |  | 
| 90 | dynamic: libyoda.so.0.0.0 | 
| 91 | ln -sf libyoda.so.0.0.0 libyoda.so.0 ;\ | 
| 92 | ln -sf libyoda.so.0.0.0 libyoda.so | 
| 93 |  | 
| 94 |  | 
| 95 | static: libyoda.a | 
| 96 |  | 
| 97 | libyoda.so.0.0.0: $(TARGETLIB) $(EXTLIB) | 
| 98 | $(CXX) \ | 
| 99 | $(PAM_BIT) -o $@ \ | 
| 100 | -shared -nostdlib \ | 
| 101 | -Wl,-soname \ | 
| 102 | -Wl,libyoda.so.0 \ | 
| 103 | /usr/lib/gcc/i386-redhat-linux/3.4.6/crtbeginS.o \ | 
| 104 | /usr/lib/gcc/i386-redhat-linux/3.4.6/crtendS.o \ | 
| 105 | -Wl,--whole-archive \ | 
| 106 | $^ \ | 
| 107 | -Wl,--no-whole-archive | 
| 108 |  | 
| 109 |  | 
| 110 | libyoda.a: $(TARGETLIB) $(EXTLIB) | 
| 111 | cd $(OBJDIR) ; \ | 
| 112 | pwd ;\ | 
| 113 | for sub_lib in $(TARGETLIB) $(EXTLIB) ; do \ | 
| 114 | $(AR) -x $$sub_lib ; \ | 
| 115 | done ;\ | 
| 116 | $(AR) -scrv libyoda.a *.o \ | 
| 117 | /usr/lib/gcc/i386-redhat-linux/3.4.6/crtbeginS.o \ | 
| 118 | /usr/lib/gcc/i386-redhat-linux/3.4.6/crtendS.o | 
| 119 |  | 
| 120 |  | 
| 121 | $(TARGETLIB) : ${OBJS} | 
| 122 | $(AR) -scrv $@ $? | 
| 123 |  | 
| 124 | $(EXTLIB): $(EXTDIR) | 
| 125 | for sub_dir in $(EXTDIR) ; do \ | 
| 126 | $(MAKE) -C $$sub_dir libs ; \ | 
| 127 | done | 
| 128 |  | 
| 129 | SUBPACKET_HEADER_FILES = \ | 
| 130 |  | 
| 131 | INCLUDES = -I. -I$(ROOT_DIR)/include | 
| 132 | DICT_HEADER_FILES = \ | 
| 133 | PamelaRun.h             yodaversion.h           RunInfoYoda.h   \ | 
| 134 | SubPacket.h             PacketType.h            SubDetector.h   \ | 
| 135 | DirectoryStructure.h    Algorithm.h             AlgorithmInfo.h \ | 
| 136 | EventHeader.h           PscuHeader.h            EventCounter.h  \ | 
| 137 | endrun/PhysEndRunEvent.h                                        \ | 
| 138 | endrun/CaloEndRun.h                                             \ | 
| 139 | endrun/TBEndRun.h                                               \ | 
| 140 | log/LogEvent.h          log/LogRecord.h \ | 
| 141 | varDump/VarDumpEvent.h varDump/VarDumpRecord.h  \ | 
| 142 | arrDump/ArrDumpEvent.h arrDump/ArrDumpRecord.h  \ | 
| 143 | tabDump/TabDumpEvent.h tabDump/TabDumpRecord.h  \ | 
| 144 | tmtc/TmtcEvent.h        tmtc/TmtcRecord.h       \ | 
| 145 | mcmd/McmdEvent.h        mcmd/McmdRecord.h       \ | 
| 146 | physics/neutronDetector/NeutronEvent.h          \ | 
| 147 | physics/neutronDetector/NeutronRecord.h         \ | 
| 148 | physics/anticounter/AnticounterEvent.h          \ | 
| 149 | physics/calorimeter/CalorimeterEvent.h          \ | 
| 150 | physics/S4/S4Event.h                            \ | 
| 151 | physics/tof/TofEvent.h                          \ | 
| 152 | physics/tracker/TrackerEvent.h                  \ | 
| 153 | physics/trigger/TriggerEvent.h                  \ | 
| 154 | tsbt/TsbTEvent.h        tsbt/TsbTRecord.h       \ | 
| 155 | tsbb/TsbBEvent.h        tsbb/TsbBRecord.h       \ | 
| 156 | PscuEvent.h             \ | 
| 157 | CalibCalPulse1Event.h   \ | 
| 158 | CalibCalPulse2Event.h   \ | 
| 159 | CalibTrkBothEvent.h     \ | 
| 160 | CalibTrk1Event.h        \ | 
| 161 | CalibTrk2Event.h        \ | 
| 162 | CalibTofEvent.h         \ | 
| 163 | CalibS4Event.h          \ | 
| 164 | CalibCalPedEvent.h      \ | 
| 165 | Calib1_Ac1Event.h       \ | 
| 166 | Calib2_Ac1Event.h       \ | 
| 167 | Calib1_Ac2Event.h       \ | 
| 168 | Calib2_Ac2Event.h       \ | 
| 169 | CalibCalEvent.h         \ | 
| 170 | RunHeaderEvent.h        \ | 
| 171 | RunTrailerEvent.h       \ | 
| 172 | CalibHeaderEvent.h      \ | 
| 173 | CalibTrailerEvent.h     \ | 
| 174 | InitHeaderEvent.h       \ | 
| 175 | InitTrailerEvent.h      \ | 
| 176 | EventTrkEvent.h         \ | 
| 177 | ForcedFECmdEvent.h      \ | 
| 178 | Ac1InitEvent.h          \ | 
| 179 | CalInitEvent.h          \ | 
| 180 | TrkInitEvent.h          \ | 
| 181 | TofInitEvent.h          \ | 
| 182 | TrgInitEvent.h          \ | 
| 183 | NdInitEvent.h           \ | 
| 184 | S4InitEvent.h           \ | 
| 185 | Ac2InitEvent.h          \ | 
| 186 | CalAlarmEvent.h         \ | 
| 187 | Ac1AlarmEvent.h         \ | 
| 188 | TrkAlarmEvent.h         \ | 
| 189 | TrgAlarmEvent.h         \ | 
| 190 | TofAlarmEvent.h         \ | 
| 191 | S4AlarmEvent.h          \ | 
| 192 | Ac2AlarmEvent.h         \ | 
| 193 | CRC.h                   \ | 
| 194 | Exception.h             \ | 
| 195 | LinkDef.h | 
| 196 |  | 
| 197 | $(ROOTEVENTDICT).cpp: ${DICT_HEADER_FILES} | 
| 198 | echo    $(ROOTCINT) -f $@ -c ${INCLUDES} $^ ;\ | 
| 199 | LD_LIBRARY_PATH=$(ROOT_LIB) $(ROOTCINT) -f $@ -c ${INCLUDES} $^ | 
| 200 |  | 
| 201 | clean: clean-subdir | 
| 202 | rm -f $(TARGETLIB) ${OBJS} $(OBJDIR)/.*.d libyoda* | 
| 203 |  | 
| 204 | clean-subdir: $(EXTDIR) | 
| 205 | for sub_dir in $(EXTDIR) ; do \ | 
| 206 | $(MAKE) -C $$sub_dir clean ; \ | 
| 207 | done | 
| 208 |  | 
| 209 | distclean: distclean-sub distclean-subdir clean | 
| 210 | rm -f $(ROOTEVENTDICT).{cpp,h} | 
| 211 |  | 
| 212 | distclean-subdir: | 
| 213 | for sub_dir in $(EXTDIR) ; do \ | 
| 214 | $(MAKE) -C $$sub_dir distclean-sub ; \ | 
| 215 | done | 
| 216 |  | 
| 217 |  | 
| 218 | -include $(DEPEND) | 
| 219 |  | 
| 220 |  | 
| 221 | #------------------------------------------------------------------------------ | 
| 222 | include $(BASEDIR)/event/Make.def.post | 
| 223 | #------------------------------------------------------------------------------ |