CC      =  gcc -pipe
CC_D    =  
CC_I    =  -I../include
CC_O    =  -O4 -fomit-frame-pointer
CC_G    =  -g
CC_W    =  -Wall
CFLAGS  =  $(CC_D) $(CC_I) $(CC_O) $(CC_G) $(CC_W)
#############################################################################
prefix  =  /usr/local
BIN_EXE =  $(prefix)/bin
BIN_SCR =  $(prefix)/bin
LIB_A   =  $(prefix)/lib
LIB_SO  =  $(prefix)/lib
DOC_MAN =  $(prefix)/share/man
DOC_MISC=  $(prefix)/doc
#############################################################################
# Some makes have issues with the '%' character so we make it a macro
P = %
PROGRAMS = pct-fold pct-$P addr2nm pct-pr pct-stat pct-zero pct-src pct-sort#pct-sub pct-sum
SCRIPTS  = pct pct-asm dblog2hist gdb-xl where-simp addr-simp gdb-getnums

.PHONY: all clean install uninstall

all:	$(PROGRAMS)

#############################################################################

pct-fold	: pct-fold.c
pct-$P		: pct-$P.c    ../include/lineio.h ../include/lineio.c
pct-getln	: pct-getln.c ../include/lineio.h ../include/lineio.c
pct-src		: pct-src.c   ../include/lineio.h ../include/lineio.c
pct-sort	: pct-sort.c  ../include/lineio.h ../include/lineio.c
addr2nm		: addr2nm.c

pct-common.c	: ../include/pct.h
pct-stat	: pct-common.c pct-stat.c
pct-zero	: pct-common.c pct-zero.c
pct-pr		: pct-common.c pct-pr.c
pct-sub		: pct-common.c pct-sub.c
pct-sum		: pct-common.c pct-sum.c

#############################################################################

pct-fold:
	$(CC) $(CFLAGS) $(LDFLAGS) pct-fold.c -o pct-fold
pct-$P:
	$(CC) $(CFLAGS) $(LDFLAGS) pct-$P.c -o pct-$P
pct-getln:
	$(CC) $(CFLAGS) $(LDFLAGS) pct-getln.c -o pct-getln
addr2nm:
	$(CC) $(CFLAGS) $(LDFLAGS) addr2nm.c -o addr2nm
pct-stat:
	$(CC) $(CFLAGS) $(LDFLAGS) pct-stat.c -o pct-stat
pct-zero:
	$(CC) $(CFLAGS) $(LDFLAGS) pct-zero.c -o pct-zero
pct-pr:
	$(CC) $(CFLAGS) $(LDFLAGS) pct-pr.c -o pct-pr
pct-sort:
	$(CC) $(CFLAGS) $(LDFLAGS) pct-sort.c -o pct-sort
pct-src:
	$(CC) $(CFLAGS) $(LDFLAGS) pct-src.c -o pct-src
pct-sub: 
	$(CC) $(CFLAGS) $(LDFLAGS) pct-sub.c -o pct-sub
pct-sum: 
	$(CC) $(CFLAGS) $(LDFLAGS) pct-sub.c -o pct-sub

#############################################################################

install:
	install -cm755 $(PROGRAMS) $(BIN_EXE)
	install -cm755 $(SCRIPTS)  $(BIN_SCR)

uninstall:
	cd $(BIN_EXE); rm -f $(PROGRAMS)
	cd $(BIN_SCR); rm -f $(SCRIPTS)

clean:
	rm -rf $(PROGRAMS) *.o *.a *.so *core *.pct *.la *.lo .libs *.out
