On Fri, Jan 24, 2003 at 02:41:56AM -0600, will trillich wrote:
> okay, i used to know how these makefiles worked, but that was a
> few lifetimes ago... :(
>
> i'm doing many iterations on the edit-run-edit cycle in creating
> a postgresql 7.2.1 (woody) and thought that make would be able
> to help keep my inter-dependencies in line.
>
> of course, there's no "object" file as there is when compiling
> C. does there HAVE TO BE some output stored somewhere? maybe i
> can have the results of "psql $(DB) -f <source.sql>" redirected
> to an outfile for timestamp tracking purposes?
I have done similar things - although that was for an Oracle database,
the same principles apply.
My solution was to use a dummy .$(SCRIPT)-run.stamp file - and use the
timestamp on this file to remember when $(SCRIPT).sql was last run:
#/usr/bin/make -f
SQLFILES = fns.sql person.sql dates.sql
STAMPFILES = $(SQLFILES:%.sql=.%-run.stamp)
.PHONY : default
default : $(STAMPFILES)
# If an *.sql file changes, run it
.%-run.stamp : %.sql
$(PG) $(@:.%-run.stamp=%.sql)
touch $@
# if fns.sql changes, re-run person.sql
.person-run.stamp : fns.sql
# if person.sql changes, re-run dates.sql
.dates-run.stamp : person.sql
# End of makefile
This will make sure that if an *.sql file changes, it gets run.
Additionally, person.sql will get re-run if fns.sql changes, and if
person.sql changes, dates.sql will be re-run too.
HTH
--
Karl E. Jørgensen
karl@jorgensen.com http://karl.jorgensen.com JabberID: linux_geek@jabber.org
==== Today's fortune:
You mean you didn't *know* she was off making lots of little phone companies?
Attachment:
pgpTCKosxBmcV.pgp
Description: PGP signature