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
|
CC?=gcc
LD=${CC}
PKG_CONFIG ?= pkg-config
CFLAGS += -Wall -pedantic -std=c99 -g -O3 -DSORTEDUNMAPPED -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DDBGNFO -DSHOWALIGN -DDBGLEVEL=0 -DPROGNFO -Ilibs -Ilibs/sufarray -Isamtools
CFLAGS += `$(PKG_CONFIG) --cflags htslib`
INC := -I include
CTAGS = ctags > tags
LIB += -lm -lpthread -lz -lncurses -L libs -lform -lmenu -L/usr/local/lib/
LIB += `$(PKG_CONFIG) --libs htslib`
PRGTARGETS := segemehl haarz
LIBDIR := libs
BUILDDIR:= build
TARGETDIR := .
TARGETEXT := .x
SRCEXT := c
SOURCES := $(shell find $(LIBDIR) -type f -name *.$(SRCEXT))
SOURCES := $(filter-out $(EXCLUDE), $(SOURCES))
PRGSOURCES := $(patsubst %,$(LIBDIR)/%.c,$(PRGTARGETS))
LIBSOURCES := $(filter-out $(PRGSOURCES), $(SOURCES))
OBJECTS := $(patsubst $(LIBDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o))
LIBOBJECTS := $(patsubst $(LIBDIR)/%,$(BUILDDIR)/%,$(LIBSOURCES:.$(SRCEXT)=.o))
$(PRGTARGETS): $(OBJECTS)
@echo "Linking $@";
$(LD) $(LIBOBJECTS) $(BUILDDIR)/$@.o -o $(TARGETDIR)/$@$(TARGETEXT) $(LIB) $(LDFLAGS)
$(BUILDDIR)/%.o: $(LIBDIR)/%.c
@echo "Building... library for source $@";
@mkdir -p $(BUILDDIR)
$(CC) $(CFLAGS) $(INC) $(CPPFLAGS) -c -o $@ $<
all: $(PRGTARGETS)
clean:
@echo " Cleaning...";
@echo " $(RM) -r $(BUILDDIR) $(PRGTARGETS)"; $(RM) -r $(BUILDDIR) $(PRGTARGETS)
.PHONY: clean
|