###################################################################### # 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" # # Contributors: # David Anderson # Jason Bacon # ###################################################################### ################################ # Files to be installed by make BINS = LIB1 = liblegoctl.a LIBS = ${LIB1} HEADERS = legoctl.h MANS = legoctl.1 SCRIPTS = ################################################### # List object files that comprise BIN1, BIN2, etc. OBJS1 = lct.o nxt.o rcx.o usb.o brick.o OBJS = ${OBJS1} ##################################### # Compile, link, and install options PREFIX ?= /usr/local CC ?= cc INCLUDES?= -I${PREFIX}/include #CFLAGS ?= -g -pipe CFLAGS = -g -pipe CFLAGS += -Wall ${INCLUDES} LFLAGS1 += -L${PREFIX}/lib LFLAGS2 += -L${PREFIX}/lib INSTALL ?= install LN ?= ln RM ?= rm AR ?= ar RANLIB ?= ranlib ##################################### # Standard targets required by ports all: ${BINS} ${LIBS} # Link rules ${LIB1}: ${OBJS1} ${AR} r ${LIB1} ${OBJS1} ${RANLIB} ${LIB1} # Generic source compile rules rcx.o: rcx.c legoctl.h protos.h ${CC} -c ${CFLAGS} rcx.c nxt.o: nxt.c legoctl.h nxt.h protos.h ${CC} -c ${CFLAGS} nxt.c lct.o: lct.c legoctl.h protos.h ${CC} -c ${CFLAGS} lct.c usb.o: usb.c protos.h ${CC} -c ${CFLAGS} usb.c brick.o: brick.c legoctl.h protos.h ${CC} -c ${CFLAGS} brick.c # 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 realclean: 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