# # file : Makefile (UNIX) # # Example of a stand-alone makefile for compiler-generated M files # # $Revision: 1.5 $ # # Set up the ARCH variables # ARCH := $(shell arch) # # Define directories # MATLABROOT=/usr/local/matlab # # Defaults # MCC=$(MATLABROOT)/bin/mcc # ifeq ($(ARCH),hp700) MEX=mexhp7 endif ifeq ($(ARCH),sgi) MEX=mexsg endif ifeq ($(ARCH),sgi64) MEX=mexsg64 endif ifeq ($(ARCH),ibm_rs) MEX=mexrs6 endif ifeq ($(ARCH),sol2) MEX=mexsol endif ifeq ($(ARCH),lnx86) MEX=mexlx endif ifeq ($(ARCH),alpha) MEX=mexaxp endif MEX_TARGETS=squibo.$(MEX) tridi.$(MEX) earth.$(MEX) houdini.$(MEX) collect.$(MEX) # # It's important that MRANK gets built before MRANKP, since MRANK has # a dependency on MRANK.M to build MRANK.C as does MRANKP. however, # MRANKP doesn't build MRANK.C only MRANK does. so it's important # that MRANK builds first, so that MRANK.C is up to date by the time # MRANKP builds with it # STAND_ALONE_TARGETS=mrank.$(ARCH) mrankp.$(ARCH) multargp.$(ARCH) hello.$(ARCH) mr.$(ARCH) TARGETS=$(MEX_TARGETS) $(STAND_ALONE_TARGETS) all: $(TARGETS) $(MEX_TARGETS) : %.$(MEX) : %.m $(MCC) -x $^ collect.$(MEX): collect.m measure.c $(MCC) -x $^ mrank.$(ARCH): main.m mrank.m mrankp.$(ARCH): mrankp.c mrank.c hello.$(ARCH): hello.m %.$(ARCH): $(MCC) -m $^ -o $@ @rm -f *.o multargp.$(ARCH): multargp.c multarg.m $(MCC) -t -h -T link:exe $^ -o $@ @rm -f *.o mr.$(ARCH): mr.m mrank.m myph.c $(MCC) -t -L C -W main -T link:exe $^ -o $@ @rm -f *.o clean: rm -f $(TARGETS) reallyclean: rm -f $(TARGETS) \ squibo_mex.c squibo.h squibo.c \ tridi_mex.c tridi.h tridi.c \ earth_mex.c earth.h earth.c \ houdini_mex.c houdini.h houdini.c \ collect_mex.c collect.h collect.c collect_external.h \ mrank.h mrank.c \ main_main.c main.h main.c \ multarg.h multarg.c \ hello.h hello.c hello_main.c \ mr.h mr.c mr_external.h mr_main.c