include ../config/Makefile CC=$(NATIVECC) # LIBRARY OROOT=../ # Note the importance of -I- to override mlvalues.h with that in this dir CFLAGS= -I- -I $(OROOT)/natdyn \ -I $(OROOT)/byterun -I $(OROOT)/asmrun -DNATIVE_CODE \ -DTARGET_$(ARCH) -DSYS_$(SYSTEM) $(NATIVECCCOMPOPTS) # All the source code files that use IsAtom() defined in mlvalues.h # We have to recompile them with our mlvalues.h and our IsAtom() IsAtomUsers= \ array.c \ compare.c \ hash.c \ instrtrace.c \ extern.c IsAtomSrcDir=../byterun # we need merely mldl_prim.o so to avoid unresolved references: # Trx refers to offshoring, and offshoring refers to mldl_prim.o # so, once we need Trx for anything, we have to link against # all the other stuff, whether we use it or not. LIB_C = roots.c ndl.c $(IsAtomUsers) $(OROOT)/byterun/mldl_prim.c LIB=libnatdyn.a $(IsAtomUsers:.c=.o): mlvalues.h $(CC) $(CFLAGS) -o $@ -c $(IsAtomSrcDir)/$(@:.o=.c) $(LIB): $(LIB_C:.c=.o) ar rcv $@ $^ clean: rm -f *.o $(LIB) *.cmi *.cmx