Generic Makefile: Difference between revisions

From genomewiki
Jump to navigationJump to search
No edit summary
No edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<pre>
<pre>
include $(KENT)/src/inc/common.mk
include ${KENT}/src/inc/common.mk


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


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


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


clean:
clean:
Line 19: Line 19:
</pre>
</pre>


Make sure that the four indented lines are indenten with tabs, otherwise the file will not work.
Make sure that the four indented lines are indented with tabs, otherwise the file will not work.
 
See also:  the <em>newProg</em> 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.
 
[[Category:Browser Development]]

Latest revision as of 20:55, 20 November 2014

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.