Skip site navigation (1)Skip section navigation (2)
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>