MAIN1=TPCpedConfig MAIN2=AltroPlayer SO1=librorc2rcu.so PROJNAME=daq-TPC-configPedestal VERSION=2.1 RELEASE=3 KIT:=$(PROJNAME)-${VERSION} SRCS=Makefile $(MAIN1).c $(MAIN2).c $(MAIN1).h $(MAIN2).h *.sh rorc2rcu_lib.c rorc2rcu.h CXXFLAGS=-Wall -O2 -pipe -fPIC -g MYSQL_DIR=/usr/include/mysql DATE_TPCC_DIR=/opt/tpcc DATE_DIR=/opt/date DATE_RORC_DIR=${DATE_DIR}/rorc DATE_FEC_DIR=${DATE_DIR}/fec DATE_PHM_DIR=${DATE_DIR}/physmem DATE_IFL_DIR=${DATE_DIR}/infoLogger DATE_TPCC_BIN=${DATE_TPCC_DIR}/Linux DATE_RORC_BIN=${DATE_RORC_DIR}/Linux DATE_FEC_BIN=${DATE_FEC_DIR}/Linux DATE_PHM_BIN=${DATE_PHM_DIR}/Linux DATE_IFL_BIN=${DATE_IFL_DIR}/Linux INCLUDES=-I$(DATE_RORC_DIR) -I$(DATE_FEC_DIR) -I$(DATE_PHM_DIR) INCL1=$(INCLUDES) INCL2=$(INCLUDES) -I$(DATE_IFL_DIR) -I$(DATE_TPCC_DIR) -I$(MYSQL_DIR) -I./ OBJS= ${DATE_FEC_BIN}/fec2rorc_lib.o ${DATE_RORC_BIN}/rorc_aux.o ${DATE_PHM_BIN}/physmem_lib.o OBJS1=$(OBJS) rorc2rcu_lib.o ${DATE_RORC_BIN}/rorc_ddl_q.o ${DATE_RORC_BIN}/rorc_lib_q.o OBJS2=$(OBJS) ${DATE_TPCC_BIN}/fec2rorc_rcu.o ${DATE_RORC_BIN}/rorc_lib_p.o \ ${DATE_RORC_BIN}/rorc_ddl_p.o ${DATE_IFL_BIN}/libInfo.a MYSQLLIBS := $(shell mysql_config --libs_r) -lz MYSQLCOMP := $(shell mysql_config --cflags) # local temp directory ifeq (${PWD},) PWD := ${shell pwd} endif TMPDIR := ${PWD}/tmp # =================================================================== default : $(MAIN1) $(MAIN2) mkdir -p bin lib mv $(MAIN1).app $(MAIN2).app bin/ mv $(SO1) lib/ # ======================= librorc2rcu.so ================== $(SO1) : rorc2rcu_lib.c rorc2rcu.h gcc -c -fPIC rorc2rcu_lib.c $(INCL1) gcc -fPIC -shared $(OBJS1) -o $(SO1) # ======================= C File compiled with gcc ================== %.o : %.c %.h gcc $(CXXFAGS) $(INCL2) -DPROG_VERSION="\"$(VERSION)-$(RELEASE)\"" -c $< @echo " ======================================================" # ======================= CPP Files compiled with g++ =============== %.o : %.C g++ $(CXXFLAGS) -c $< @echo " ======================================================" # ============================= Programs ============================= $(MAIN1) : $(MAIN1).o gcc $(CXXFLAGS) -o $(MAIN1).app $(MAIN1).o ${MYSQLLIBS} $(OBJS2) @echo " ======================================================" $(MAIN2) : $(SO1) gcc -o $(MAIN2){.app,.c} $(INCL2) /date/rorc/Linux/{rorc_lib_q,rorc_ddl_q,rorc_aux}.o /date/fec/Linux/fec2rorc_lib.o -L./ -lrorc2rcu -Wall @echo " ======================================================" dummy_patt : create_dummy_pattern_file.o g++ $(CXXFLAGS) -o create_dummy_pattern_file create_dummy_pattern_file.o @echo " ======================================================" dummy_ped : create_dummy_ped_file.o g++ $(CXXFLAGS) -o create_dummy_ped_file create_dummy_ped_file.o @echo " ======================================================" dummy_noise : create_dummy_noise_file.o g++ $(CXXFLAGS) -o create_dummy_noise_file create_dummy_noise_file.o @echo " ======================================================" # ======================= Clean ===================================== clean : rm -rf *.so *.o *~ *.app create_dummy_*_file *.data rm -rf bin lib ${TMPDIR} *.tar.gz *.rpm core.* @echo " ======================================================" # ======================= Build all ================================== all : $(MAIN1) $(MAIN2) dummy_ped dummy_noise dummy_patt mkdir -p bin lib mv $(MAIN1).app $(MAIN2).app bin/ mv $(SO1) lib/ # ======================= make RPM ================================== rpm : @rm -rf ${TMPDIR}/${KIT} @mkdir -p ${TMPDIR}/${KIT} @cp -p ${SRCS} ${TMPDIR}/${KIT} @tar -cz -C ${TMPDIR} ${KIT} > ./${KIT}.src.tar.gz @echo " ===== Source package ${KIT}.src.tar.gz created: =====" @tar -tzf ./${KIT}.src.tar.gz @echo " ======================================================" @rm -rf $(TMPDIR)/SOURCES $(TMPDIR)/SPECS $(TMPDIR)/BUILD $(TMPDIR)/RPMS $(TMPDIR)/SRPMS @mkdir -p $(TMPDIR)/SOURCES $(TMPDIR)/SPECS $(TMPDIR)/BUILD $(TMPDIR)/RPMS $(TMPDIR)/SRPMS @cp ./${KIT}.src.tar.gz $(TMPDIR)/SOURCES @rpmbuild --define "_topdir $(TMPDIR)" -ba $(KIT)-$(RELEASE).spec @find $(TMPDIR)/ -name "${KIT}-*.rpm" -exec cp -p {} . \; @echo @echo " ===== Rpms created! ==================================" @echo " ======================================================"