blob: cf47b35af5023853bb5b0c2014320dc564eba4c3 [file] [log] [blame]
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