Date: Mon, 09 Nov 1998 19:45:48 -0600 From: Stephen Zepp <zenithar@mindspring.com> To: freebsd-questions@FreeBSD.ORG Subject: Gmake and seperate src, obj, and inc dirs Message-ID: <36479ACC.1ABF1C0E@mindspring.com>
next in thread | raw e-mail | index | archive | help
I've been trying for several days to write a simple Makefile that can handle having the .c and .h files in seperate directories, and place the .o files in a third directory. The executable is fine in the src dir. Paths: /dsmud /src : contains .c, Makefile, and executable /inc : contains .h /obj : repository for .o files. gmake is run from /dsmud/src. I've poured over the online version of the .info of gmake, and as far as I can tell we are doing what is correct, but we always get the error: gmake: *** No rule to make target `act_comm.o', needed by `darkshade'. Stop. It's my understanding that the vpath allows gmake to check the directories as set in INCDIR, SRCDIR and OBJDIR, but this doesn't seem to be happening. System is a Pentium 90 running FreeBSD 2.2.7-STABLE Makefile is below. Anyone have any suggestions? :) TIA Stephen Zepp CC = gcc PROF = NOCRYPT = # # Source directories # SRCDIR=/usr/home2/dsmain/dsmud/src INCDIR=/usr/home2/dsmain/dsmud/inc # # Target directories # OBJDIR=/usr/home2/dsmain/dsmud/obj .CURDIR=. # Debugging flags possible: DEBUG_MEM DEBUG_MEM_CORRUPT DEBUG_MEM_DUP_FREE # DEBUG_MEM is most basic, just checks magic numbers when freeing # DEBUG_MEM_CORRUPT checks every free block to see if magic numbers ok, every # call to alloc_mem # Also makes calls to void check_free_mem(void) check for # corrupted free memory blocks. # DEBUG_MEM_DUP_FREE checks to see if freed blocks are overlapping every call # to mem_alloc. # # -DDEBUG_MEM -DDEBUG_MEM_CORRUPT -DDEBUG_MEM_DUP_FREE #-DDEBUG_MEM -DDEBUG_MEM_CORRUPT CFLAGS = -O -g3 -Wall -DACK_43 $(PROF) $(NOCRYPT) -I. -I$(SRCDIR) -I$(OBJDIR) -I$(INCDIR) #CFLAGS = -g3 -Wall ($PROF) $(NOCRYPT) L_FLAGS = -O -g $(PROF) #L_FLAGS = $(PROF) #VPATH=$(SRCDIR)/:$(INCDIR)/:$(OBJDIR)/ vpath %.c $(SRCDIR) vpath %.h $(INCDIR) vpath %.o %(OBJDIR) OBJS_darkshade = \ act_comm.o \ act_info.o \ act_move.o \ act_obj.o \ act_wiz.o \ comm.o \ const.o \ db.o \ fight.o \ handler.o \ interp.o \ magic.o \ magic2.o \ magic3.o \ magic4.o \ spell_dam.o \ mob_commands.o \ mob_prog.o \ save.o \ special.o \ update.o \ board.o \ areasave.o \ buildtab.o \ build.o \ write.o \ act_clan.o \ buildare.o \ hunt.o \ hash.o \ areachk.o \ clutch.o \ obj_fun.o \ macros.o \ trigger.o \ quest.o \ lists.o \ social-edit.o \ imc.o \ imc-mercbase.o \ imc-interp.o \ imc-version.o \ imc-mail.o \ imc-util.o \ imc-config.o \ imc-events.o \ ice.o \ icec.o \ icec-mercbase.o \ vampyre.o \ werewolf.o \ mount.o \ pdelete.o \ wizutil.o \ money.o \ ssm.o \ scheck.o \ rulers.o \ spendqp.o \ enchant.o \ sysdata.o \ strfuns.o \ mapper.o \ email.o \ overland.o \ file_io.o \ system.o \ vr_handler.o \ guilds.o \ interact.o \ craftspec.o darkshade: $(OBJS_darkshade) rm -f darkshade $(CC) $(L_FLAGS) -o darkshade $(OBJS_darkshade) -lm -lscrypt %.o: %.c ack.h $(CC) -c $(CFLAGS) $^ -o $@ clean: rm -f $(OBJS_darkshade) darkshade ../area/darkshade.core make To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?36479ACC.1ABF1C0E>