From owner-freebsd-questions@FreeBSD.ORG Mon May 22 23:48:26 2006 Return-Path: X-Original-To: freebsd-questions@freebsd.org Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B0AB616A48E for ; Mon, 22 May 2006 23:48:26 +0000 (UTC) (envelope-from andrew.chace@gmail.com) Received: from nz-out-0102.google.com (nz-out-0102.google.com [64.233.162.199]) by mx1.FreeBSD.org (Postfix) with ESMTP id 259BE43D45 for ; Mon, 22 May 2006 23:48:26 +0000 (GMT) (envelope-from andrew.chace@gmail.com) Received: by nz-out-0102.google.com with SMTP id l8so1093456nzf for ; Mon, 22 May 2006 16:48:25 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:subject:from:to:cc:in-reply-to:references:content-type:date:message-id:mime-version:x-mailer:content-transfer-encoding; b=bMQmjgc2JKqPev/VYczhfJFtFpw6vwDrhfpHEvqScVC2A4xBul23CpHR9mvcY1kAjeRw5h0lHY72FkAWEYL2MuLXSCXyYUe/ICIv3bGJrLLxkuBiWTdM27xtmB4uuLUQj+rnFJsVwcenCkhcyfCqoX0yx4o+K7tKXPOtatSBJP4= Received: by 10.36.145.3 with SMTP id s3mr6881018nzd; Mon, 22 May 2006 16:48:25 -0700 (PDT) Received: from ?192.168.0.6? ( [70.56.10.145]) by mx.gmail.com with ESMTP id 24sm3702744nzn.2006.05.22.16.48.24; Mon, 22 May 2006 16:48:25 -0700 (PDT) From: Andrew To: Parv In-Reply-To: <20060522224521.GA7373@holestein.holy.cow> References: <1148335671.2572.10.camel@LatitudeFC5.network> <20060522224521.GA7373@holestein.holy.cow> Content-Type: text/plain Date: Mon, 22 May 2006 18:48:31 -0500 Message-Id: <1148341712.2572.19.camel@LatitudeFC5.network> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 (2.6.1-1.fc5.2) Content-Transfer-Encoding: 7bit Cc: freebsd-questions@freebsd.org Subject: Re: Makefile and '$(addprefix)' SOLVED X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 May 2006 23:48:26 -0000 On Mon, 2006-05-22 at 18:45 -0400, Parv wrote: > in message <1148335671.2572.10.camel@LatitudeFC5.network>, > wrote Andrew thusly... > > > > I'm trying to use $(addprefix) build lists of source files and > > object files containing the relative paths for each. The problem > > is that $(addprefix) never seems to be evaluated. When I run 'make > > -p', $OBJECT_LIST looks exactly like in does in my Makefile, which > > is listed below. > ... > > #### Begin Makefile #### > > > > ## compiler settings > > CC = gcc > > OPTIONS = -Wall -g > > > > ## directory layout > > BASEDIR = ../alice > > SOURCEDIR = $(BASEDIR)/sources > > OBJECTDIR = $(BASEDIR)/objects > > DOCSDIR = $(BASEDIR)/documentation > ... > > SOURCES_LIST = $(addprefix, $(SOURCEDIR), $(SOURCE)) > > OBJECTS_LIST = $(addprefix, $(OBJECTDIR), $(OBJECTS)) > > > > ## targets > > alice: $(OBJECT_LIST) > > $(CC) $(OPTIONS) -o $@ $(OBJECT_LIST) > ... > > Looks like you are using gnu make syntax. > > Read make(1) man page. Replace $(VAR) with ${VAR} & see what > happens (i am unsure as i am a light user of BSD make). > > > - Parv > Hello all, I've fixed my Makefile. Here's a working version, in case it will be of help to someone else. Oh, by-the-way, this is for GNU make, not BSD make. -Andrew #### Begin Makefile #### ## Makefile for GNU make ## compiler settings CC = gcc CFLAGS = -Wall -g ## directory layout BASEDIR = ../alice SRCDIR = $(BASEDIR)/sources/ OBJDIR = $(BASEDIR)/objects/ DOCDIR = $(BASEDIR)/documentation ## sources SRC = main.c help.c status.c buffer.c device.c error.c insane.c ## objects OBJ = main.o help.o status.o buffer.o device.o error.o insane.o ## list of objects containing relative path for each OBJLIST = $(addprefix $(OBJDIR), $(OBJ)) ## pathes for make to search VPATH = $(SRCDIR) $(OBJDIR) alice: $(OBJ) $(CC) $(CFLAGS) -o $@ $(OBJLIST) %.o: %.c alice.h $(CC) $(CFLAGS) -c $< -o $(OBJDIR)$@ clean: rm $(OBJLIST) *.core distclean: clean rm -r *~ #### End Makefile ####