Leisner.Henr@xerox.com (Marty) (04/30/89)
Thanks for all the help for the multiple target make question. Responses are on arisia.xerox.com:pub/multipletargets.mail. You can anonymous ftp to it. If it's a problem, send me mail. It is an XDE mail file (all ascii text) -- there's some junk between messages but it should be readable. What I'm doing is using GNU make and using configuration ifdefs to configure various compiler options. On a sun386i, I'm doing something like this: VPATH = .. ifeq ($(TARGET),DOS) include make/dosaztec.mk LIBLD=../libld.lib LIBS=-lunix -ls -lc CFLAGS=+2 -I../../libld -DPC -I.. -DFAR=far $(ENV_FLAGS) LINKOBJS=-f objects # use this since we can't pass long lines in plain dos TARGET_OBJ = int80286.o backgrnd.o 8259.o LINKOBJS=$(OBJS) else CC=gcc OPTIMIZE=-O CFLAGS=$(OPTOMIZE) -g -I../../libld -I.. -DFAR= -DSUN386 -Dscr_printf=printf TARGET_OBJ=memmap.o dos-compat.o T= sun386 LD=gcc LDFLAGS=$(CFLAGS) NO_LINK=-c LIBS= LDFLAGS= EXE= endif BINS=swiss$(EXE) sdb$(EXE) .PHONY: all test clean this # make target according to current environment this: $(MAKE) -C $T -f ../Makefile $(BINS) all: $(MAKE) TARGET=DOS $(MAKE) TARGET=UNIX .DEFAULT: $(MAKE) -C $T -f ../Makefile $@ swiss$(EXE): $(OBJS) swiss.o $(CC) -o version.o $(NO_LINK) ../version.c ifeq ($(TARGET),DOS) echo $(OBJS) version.o swiss.o >objects; \ $(LD) -o $@ version.o $(LINKOBJS) $(LIBLD) $(LIBS) else $(CC) -o $@ version.o $^ $(LIBLD) $(LIBS) endif clean: rm $(addprefix $T/,$(OBJS)) rm $(addprefix $T/,$(BINS)) rm $T/core cleanall: $(MAKE) clean TARGET=DOS $(MAKE) clean TARGET=UNIX I configure a subdirectory ($T) for all my target objects, and make out of there with vpath set to .. I'm using various make include files to configure rules for compilation. (I don't think the default rule is right). I allows a few things I've found very useful: doing a %setenv TARGET machine allows you to work in a shell building one particular type of target. Doing make TARGET=machine allows you to make that target. Seems to be working pretty good so far. I haven't done any real big projects yet with this -- I may get gnu C up and running with this method. marty ARPA: leisner.henr@xerox.com GV: leisner.henr NS: martin leisner:wbst139:xerox UUCP: hplabs!arisia!leisner