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