src/Makefile | 61 ++++++++++++++++++++++++++++++------------------------------ 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/src/Makefile b/src/Makefile index 607ab45..a88adf4 100644 --- a/src/Makefile +++ b/src/Makefile @@ -52,15 +52,16 @@ TESTOPTS= WINMAKE=mingw32-make LDLIBS = -lm -AR = ar -CC = gcc -CPP = g++ -O_OPTS = -O2 -CC_OPTS = -g -Wall -D__USE_FIXED_PROTOTYPES__ -P_DEFINES = +AR ?= ar +CC ?= gcc +CXX ?= g++ +O_OPTS ?= +CC_OPTS ?= -Wall -D__USE_FIXED_PROTOTYPES__ +P_DEFINES ?= -CFLAGS = $(CC_OPTS) $(O_OPTS) -LDFLAGS = -g +CFLAGS += $(CC_OPTS) $(O_OPTS) +CXXFLAGS += $(CC_OPTS) $(O_OPTS) +LDFLAGS += # Note, for profiling, use # make O_OPTS='-pg -O0' LDFLAGS='-g -pg' @@ -92,7 +93,7 @@ LIBPRIMER3 = libprimer3.a LIBPRIMER3_DYN = libprimer3.so.1.0.0 LIBRARIES = $(LIBPRIMER3) $(LIBDPAL) $(LIBTHAL) $(LIBOLIGOTM) DYNLIBS = $(LIBPRIMER3_DYN) $(LIBDPAL_DYN) $(LIBTHAL_DYN) $(LIBOLIGOTM_DYN) -RANLIB = ranlib +RANLIB ?= ranlib PRIMER_OBJECTS1=primer3_boulder_main.o\ format_output.o\ @@ -127,85 +128,85 @@ $(LIBOLIGOTM): oligotm.o $(RANLIB) $@ $(LIBOLIGOTM_LIB): oligotm.o - $(CC) -shared -W1,-soname,liboligotm.so.1 -o $(LIBOLIGOTM_DYN) oligotm.o + $(CC) $(LDFLAGS) -shared -W1,-soname,liboligotm.so.1 -o $(LIBOLIGOTM_DYN) oligotm.o $(LIBDPAL): dpal_primer.o $(AR) rv $@ dpal_primer.o $(RANLIB) $@ $(LIBDPAL_DYN): dpal_primer.o - $(CC) -shared -W1,-soname,libdpal.so.1 -o $(LIBDPAL_DYN_LIB) dpal_primer.o + $(CC) $(LDFLAGS) -shared -W1,-soname,libdpal.so.1 -o $(LIBDPAL_DYN_LIB) dpal_primer.o $(LIBTHAL): thal_primer.o $(AR) rv $@ thal_primer.o $(RANLIB) $@ $(LIBTHAL_DYN): thal_primer.o - $(CC) -shared -W1,-soname,libthal.so.1 -o $(LIBTHAL_DYN_LIB) thal_primer.o + $(CC) $(LDFLAGS) -shared -W1,-soname,libthal.so.1 -o $(LIBTHAL_DYN_LIB) thal_primer.o $(LIBPRIMER3): libprimer3.o p3_seq_lib.o $(AR) rv $@ libprimer3.o p3_seq_lib.o $(RANLIB) $@ $(LIBPRIMER3_DYN): libprimer3.o p3_seq_lib.o - $(CC) -shared -W1,-soname,liprimer3.so.1 -o $(LIBPRIMER3_DYN) libprimer3.o p3_seq_lib.o + $(CC) $(LDFLAGS) -shared -W1,-soname,liprimer3.so.1 -o $(LIBPRIMER3_DYN) libprimer3.o p3_seq_lib.o $(PRIMER_EXE): $(PRIMER_OBJECTS) - $(CPP) $(LDFLAGS) -o $@ $(PRIMER_OBJECTS) $(LIBOPTS) $(LDLIBS) + $(CXX) $(LDFLAGS) -o $@ $(PRIMER_OBJECTS) $(LIBOPTS) $(LDLIBS) libprimer3.o: libprimer3.c libprimer3.h p3_seq_lib.h dpal.h thal.h oligotm.h - $(CPP) -c $(CFLAGS) -Wno-deprecated $(P_DEFINES) -o $@ libprimer3.c + $(CXX) -c $(CXXFLAGS) -Wno-deprecated $(P_DEFINES) -o $@ libprimer3.c $(NTDPAL_EXE): ntdpal_main.o dpal.o - $(CPP) $(LDFLAGS) -o $@ ntdpal_main.o dpal.o + $(CXX) $(LDFLAGS) -o $@ ntdpal_main.o dpal.o $(NTTHAL_EXE): thal_main.o thal.o - $(CPP) $(LDFLAGS) -o $@ thal_main.o thal.o $(LDLIBS) + $(CXX) $(LDFLAGS) -o $@ thal_main.o thal.o $(LDLIBS) $(OLIGOTM_EXE): oligotm_main.c oligotm.h $(LIBOLIGOTM) - $(CPP) $(CFLAGS) -o $@ oligotm_main.c $(LIBOLIGOTM) $(LIBOPTS) $(LDLIBS) + $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ oligotm_main.c $(LIBOLIGOTM) $(LIBOPTS) $(LDLIBS) $(LONG_SEQ_EXE): long_seq_tm_test_main.c oligotm.o - $(CPP) $(CFLAGS) -o $@ long_seq_tm_test_main.c oligotm.o $(LIBOPTS) $(LDLIBS) + $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ long_seq_tm_test_main.c oligotm.o $(LIBOPTS) $(LDLIBS) read_boulder.o: read_boulder.c read_boulder.h libprimer3.h dpal.h thal.h p3_seq_lib.h - $(CPP) -c $(CFLAGS) $(P_DEFINES) -o $@ read_boulder.c + $(CXX) -c $(CXXFLAGS) $(P_DEFINES) -o $@ read_boulder.c print_boulder.o: print_boulder.c print_boulder.h libprimer3.h p3_seq_lib.h - $(CPP) -c $(CFLAGS) $(P_DEFINES) -o $@ print_boulder.c + $(CXX) -c $(CXXFLAGS) $(P_DEFINES) -o $@ print_boulder.c dpal.o: dpal.c dpal.h - $(CPP) -c $(CFLAGS) -o $@ dpal.c + $(CXX) -c $(CXXFLAGS) -o $@ dpal.c # We use '-ffloat-store' on windows to prevent undesirable # precision which may lead to differences in floating point results. thal.o: thal.c thal.h - $(CPP) -c $(CFLAGS) -ffloat-store -o $@ thal.c + $(CXX) -c $(CXXFLAGS) -ffloat-store -o $@ thal.c p3_seq_lib.o: p3_seq_lib.c p3_seq_lib.h libprimer3.h - $(CPP) -c $(CFLAGS) -o $@ p3_seq_lib.c + $(CXX) -c $(CXXFLAGS) -o $@ p3_seq_lib.c dpal_primer.o: dpal.c dpal.h - $(CPP) -c $(CFLAGS) $(P_DEFINES) -o $@ dpal.c + $(CXX) -c $(CXXFLAGS) $(P_DEFINES) -o $@ dpal.c thal_primer.o: thal.c thal.h - $(CPP) -c $(CFLAGS) -ffloat-store $(P_DEFINES) -o $@ thal.c + $(CXX) -c $(CXXFLAGS) -ffloat-store $(P_DEFINES) -o $@ thal.c format_output.o: format_output.c format_output.h libprimer3.h dpal.h thal.h p3_seq_lib.h - $(CPP) -c $(CFLAGS) $(P_DEFINES) -o $@ format_output.c + $(CXX) -c $(CXXFLAGS) $(P_DEFINES) -o $@ format_output.c ntdpal_main.o: ntdpal_main.c dpal.h - $(CPP) -c $(CC_OPTS) -o $@ ntdpal_main.c + $(CXX) -c $(CXXFLAGS) -o $@ ntdpal_main.c thal_main.o: thal_main.c thal.h - $(CPP) -c $(CFLAGS) -o $@ thal_main.c + $(CXX) -c $(CXXFLAGS) -o $@ thal_main.c # We use CC_OPTS above rather than CFLAGS because # gcc 2.7.2 crashes while compiling ntdpal_main.c with -O2 oligotm.o: oligotm.c oligotm.h primer3_boulder_main.o: primer3_boulder_main.c libprimer3.h dpal.h thal.h oligotm.h format_output.h print_boulder.h read_boulder.h - $(CPP) -c $(CFLAGS) $(P_DEFINES) primer3_boulder_main.c + $(CXX) -c $(CXXFLAGS) $(P_DEFINES) primer3_boulder_main.c primer_test: test