File: Makefile

package info (click to toggle)
segemehl 0.3.4-5
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 2,024 kB
  • sloc: ansic: 35,270; makefile: 43; sh: 37
file content (49 lines) | stat: -rw-r--r-- 1,338 bytes parent folder | download
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