l i n u x - u s e r s - g r o u p - o f - d a v i s
Next Meeting:
July 7: Social gathering
Next Installfest:
Latest News:
Jun. 14: June LUGOD meeting cancelled
Page last updated:
2002 Apr 02 13:58

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] help with a makefile
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] help with a makefile

info make

and then

Implicit Rules
Pattern Rules


Static Pattern
Static Usage

so, I think something like

  %.o : %.c
         $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o ./objs/$@

would do it for you.

On Tue, 2 Apr 2002, Peter Jay Salzman wrote:

> hi all,
> here is a makefile for one of my simulators:
> TARGET = ising2-periodic
> TIMESTAMP = `/bin/date +'%Y-%b-%d-%H-%M'`
> BACKUPDIR = /usr/local/backup/ising2
> WARN = -Wall -W -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
> CFLAGS = -O9 -ansi $(WARN)
> LFLAGS = -lm -L. -lpising2
> OBJS := $(patsubst %.c, %.o, $(wildcard *.c))
> $(TARGET): $(OBJS)
> 	gcc -o $@ $(OBJS) $(LFLAGS)
> main.o: main.c pising2.h fsignal.h
> fsignal.o: fsignal.c fsignal.h
> .PHONY: clean
> clean:
>    -rm -rf *.o a.out $(TARGET)
> backup:
> 	make clean
> 	cd ..; tar -jcv ./$(TARGET) > "$(BACKUPDIR)/$(TARGET)-$(TIMESTAMP).tar.bz2"
> 	echo "Saved to $(BACKUPDIR)/$(TARGET)-$(TIMESTAMP)."
> 	echo "$(TARGET)-$(TIMESTAMP)" > .version
> i would *like* to put all object files in ./objs.   i'm having a hard
> time figuring out how to do this.  i know how to have make look for the
> object files when it *links* the target:
> vpath %.o ./objs
> but that doesn't help during the *compilation* process.   is there a way
> to tell make:
>    listen, make.  i like your implicit rules.  but when you make an
>    object file, i'd really appreciate it if you put it in "./objs"
>    rather than "."
> so in other words, i KNOW how to do this by hard-coding the paths into
> the makefile.  what i'm really looking for is some kind of directive to
> modify the implicit rule.
> kind of like how when you define $(CFLAGS) you don't need to explicitly
> say:
>    target: foo.c foo.h
>    	gcc $(CFLAGS) -o $@ $<
> because make is smart enough to use your $(CFLAGS) even when you use an
> implicit rule:
>    target: foo.c foo.h      # $(CFLAGS) is used here
> i hope i explained this ok!  :)
> pete
> _______________________________________________
> vox-tech mailing list
> vox-tech@lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech

Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil@dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                      Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...2k

vox-tech mailing list

LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
Appahost Applications
For a significant contribution towards our projector, and a generous donation to allow us to continue meeting at the Davis Library.