Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:23:16

0001 #
0002 # Builds the EcalCondDB project.  Requires your $ORACLE_HOME be set and correct
0003 
0004 CC = g++
0005 CFLAGS = -c -Wall -g
0006 
0007 PACKAGE   = EcalCondDB
0008 SRCDIR  = ./src
0009 INTERFACEDIR = ./interface
0010 SHLIBFILE = ${SRCDIR}/lib$(PACKAGE).so
0011 
0012 SOURCES = $(filter-out $(BINFILE),$(wildcard ${SRCDIR}/*.cc))
0013 HEADERS = $(wildcard ${INTERFACEDIR}/*.h)
0014 OBJECTS = ${SOURCES:.cc=.o}
0015 INCLUDE = -I../.. -I${ORACLE_HOME}/include
0016 LIBDIR  = -L${ORACLE_HOME}/lib 
0017 LIBNAME = -locci -lclntsh -lnnz10
0018 
0019 # test binaries must be .cpp files in TESTDIR
0020 TESTDIR  = ./test
0021 BINFILES = $(wildcard $(TESTDIR)/*.cpp)
0022 PROGRAMS = $(patsubst %.cpp,%,$(BINFILES))
0023 
0024 .PHONY : all bin shlib clean checkheaders
0025 
0026 # build all test apps
0027 all : $(PROGRAMS)
0028 
0029 #  Should have the headers as a dependency to the objects somehow...
0030 #
0031 #checkheaders :  $(HEADERS)
0032 #       @echo "checkheaders" $?
0033 #       @touch checkheaders
0034 
0035 #%.h :
0036 #       @echo "HEADER" $@
0037 #
0038 #%.cc : %.h
0039 #       @echo "SOURCE" $@
0040 
0041 
0042 # compile all .cc files
0043 %.o : %.cc
0044         @echo "Compiling $< to $@"
0045         @${CC} ${CFLAGS} ${INCLUDE} -D_GNU_SOURCE $< -o $@
0046 
0047 # make shared library from .o files
0048 $(SHLIBFILE): $(OBJECTS)
0049         @echo "Making $(SHLIBFILE)"
0050         @rm -f $(SHLIBFILE)
0051         @$(CC) $(OBJECTS) -shared -o $(SHLIBFILE)
0052 
0053 # link each of the test apps
0054 $(PROGRAMS) : $(SHLIBFILE) $(BINFILES)
0055         @echo "Linking $@"
0056         @${CC} ${INCLUDE} -D_GNU_SOURCE $(SHLIBFILE) ${LIBDIR} ${LIBNAME} -o $@ $(patsubst %,%.cpp,$@)
0057 
0058 shlib: $(SHLIBFILE)
0059 
0060 clean:
0061         @rm -f ${OBJECTS} ${PROGRAMS} $(SHLIBFILE)