1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
# Useful directories
THISCODEDIR := .
GCLDIR := ./gclib
# Directory where libz.a can be found
ZDIR := ../zlib
# Directories to search for header files
SEARCHDIRS := -I${ZDIR} -I${THISCODEDIR} -I${GCLDIR}
SYSTYPE := $(shell uname)
MACHTYPE := $(shell uname -m)
ifeq ($(MACHTYPE), i686)
MARCH = -march=i686
else
MARCH =
endif
CC := g++
BASEFLAGS = -Wall ${SEARCHDIRS} $(MARCH) -DENABLE_COMPRESSION=0 -D_FILE_OFFSET_BITS=64 \
-D_LARGEFILE_SOURCE -fno-exceptions -fno-rtti -fno-strict-aliasing \
-D_REENTRANT
ifeq ($(findstring debug,$(MAKECMDGOALS)),)
DBGFLAGS = -O2 -DNDEBUG
LDFLAGS =
else
DBGFLAGS = -g -DDEBUG
LDFLAGS = -g
endif
ifeq ($(findstring nommap,$(MAKECMDGOALS)),)
CFLAGS := $(DBGFLAGS) $(BASEFLAGS) $(CFLAGS)
else
CFLAGS := $(DBGFLAGS) $(BASEFLAGS) -DNO_MMAP $(CFLAGS)
endif
%.o : %.c
${CC} ${CFLAGS} -c $< -o $@
%.o : %.cc
${CC} ${CFLAGS} -c $< -o $@
%.o : %.C
${CC} ${CFLAGS} -c $< -o $@
%.o : %.cpp
${CC} ${CFLAGS} -c $< -o $@
%.o : %.cxx
${CC} ${CFLAGS} -c $< -o $@
# C/C++ linker
LINKER := g++
LDFLAGS = -lz
#if ENABLE_COMPRESSION is not needed,
# LDFLAGS =
.PHONY : all
all: cdbfasta cdbyank
debug: all
nommap: all
cdbfasta: ./cdbfasta.o ./gcdbz.o $(LIBS) ${GCLDIR}/gcdb.o ${GCLDIR}/GBase.o ${GCLDIR}/GStr.o ${GCLDIR}/GArgs.o
${LINKER} -o $@ ${filter-out %.a %.so, $^} $(LDFLAGS)
cdbyank : ./cdbyank.o ./gcdbz.o ${GCLDIR}/gcdb.o ${GCLDIR}/GBase.o ${GCLDIR}/GStr.o ${GCLDIR}/GArgs.o
${LINKER} -o $@ ${filter-out %.a %.so, $^} $(LDFLAGS)
# target for removing all object files
.PHONY : tidy
tidy::
@${RM} core cdbfasta cdbyank *.o ${GCLDIR}/gcdb.o ${GCLDIR}/GBase.o ${GCLDIR}/GStr.o ${GCLDIR}/GArgs.o
# target for removing all object files
.PHONY : clean
clean:: tidy
@${RM} core cdbfasta cdbyank *.o ${GCLDIR}/gcdb.o ${GCLDIR}/GBase.o ${GCLDIR}/GStr.o ${GCLDIR}/GArgs.o
|