###################################################################### # Makefile template for simple projects. Just fill in the blanks and # add or adjust variables as needed. Remove unnecessary lines if # desired. # # To override any variables conditionally set (with ?=), run # # make VAR=value # e.g. # make PREFIX=/opt/local CC=gcc CFLAGS=-O2 LFLAGS1="-L/usr/X11R6 -lX11" # # Author: Jason W. Bacon # Medical College of Wisconsin ###################################################################### ################################ # Files to be installed by make BIN1 = BIN2 = BINS = ${BIN1} ${BIN2} LIB1 = LIB2 = LIBS = ${LIB1} ${LIB2} HEADERS = MANS = SCRIPTS = ################################################### # List object files that comprise BIN1, BIN2, etc. OBJS1 = OBJS2 = OBJS = ${OBJS1} ${OBJS2} ##################################### # Compile, link, and install options PREFIX ?= /usr/local CC ?= cc CFLAGS ?= -Wall -O -pipe CFLAGS += -I${PREFIX}/include LFLAGS1 += -L${PREFIX}/lib LFLAGS2 += -L${PREFIX}/lib INSTALL ?= install LN ?= ln RM ?= rm ##################################### # Standard targets required by ports all: ${BINS} ${LIBS} # Link rules ${BIN1}: ${OBJS1} ${CC} -o ${BIN1} ${OBJS1} ${LFLAGS1} ${BIN2}: ${OBJS2} ${CC} -o ${BIN2} ${OBJS2} ${LFLAGS2} # Generic source compile rules %.o: %.c ${CC} -c ${CFLAGS} $< # Remove generated files (objs and nroff output from man pages) clean: rm -f ${OBJS} ${BINS} ${LIBS} *.nr # Keep backup files during normal clean, but provide an option to remove them squeakyclean: clean rm -f .*.bak *.bak *.BAK install: all mkdir -p ${PREFIX}/bin ${PREFIX}/lib ${PREFIX}/include ${PREFIX}/man/man1 ${INSTALL} -s -c -m 0555 ${BINS} ${PREFIX}/bin ${INSTALL} -c -m 0555 ${SCRIPTS} ${PREFIX}/bin ${INSTALL} -c -m 0444 ${HEADERS} ${PREFIX}/include ${INSTALL} -c -m 0444 ${LIBS} ${PREFIX}/lib ${INSTALL} -c -m 0444 ${MANS} ${PREFIX}/man/man1