Generic Makefile

From genomewiki
Jump to navigationJump to search
include ${KENT}/src/inc/common.mk

CFLAGS=-I ${KENT}/src/inc -I ${KENT}/src/hg/inc 
L += -lm ${MYSQLLIBS}
MYLIBDIR = ${KENT}/src/lib/${MACHTYPE}
MYLIBS =  ${MYLIBDIR}/jkhgap.a ${MYLIBDIR}/jkweb.a 

O = ${PROG}.o ../lib/bedUtil.o

${PROG}: $O ${MYLIBS} 
        ${CC} ${COPT} ${CFLAGS}  -o ${HOME}/bin/${MACHTYPE}/${PROG} $O ${MYLIBS} $L
        strip ${HOME}/bin/${MACHTYPE}/${PROG}

clean:
        rm *.o
        rm core

Make sure that the four indented lines are indented with tabs, otherwise the file will not work.

See also: the newProg command in the kent source tree. It will generate not only a generic Makefile but also the generic structure of a kent source utility.

Please note, it is convenient to use the {curlyBraces} instead of (parens) for variables, since the lines can then be cut and pasted into a command line when need be. They work the same way in a Makefile, but not on a command line.