[Bio] / ReleaseTools / standard.mk Repository:
ViewVC logotype

View of /ReleaseTools/standard.mk

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.8 - (download) (annotate)
Fri Mar 11 16:06:34 2005 UTC (14 years, 11 months ago) by efrank
Branch: MAIN
CVS Tags: gunk
Changes since 1.7: +10 -2 lines
moved __init__ dep from generic .py rule to the generatePy rule in
the schemaTools target.  i don't see the complete chain here yet
but this makes it work for now.

 generate .py from schematools description of class. (Kah related)

    Note- add a __init__ dep because everything is required to be a package
 and so must have an __init__.  putting the dep here is a way to force the
 __init__ to be copied into the dir first so that i can immediately
 be ref'd as a package.  this is needed for schema tools ina way i don't
 grok yet

#######################################################################
# standard.mk
#
# Centralized make rules, macros, etc., shared amongst the packages.
# Package level makefiles do  not define rules, targets, etc.  Instead,
# they define a few macros needed to generate the build lists and
# standard.mk does the rest.
#
# The general pattern is to have "all of a kind" selected by wildcard
# into a build product, e.g., all .c or .cc go into a library or
# all .py get .pyc'd into the install area.  But, there are a few
# macro's that define things to exclude, e.g., .c files that have main()
# and are executables or foo.py files that are top-level programs and
# are to be installed in bin as foo.
#
# A package level makefile does "include standard.mk".  This works because
# of -I's in the Makefile.top in the workdir.  See Makefile.PackageSample.
#
#######################################################################

########################################################################
# Document macros users define in their package level makefiles here:
########################################################################
#
#BINPYSCRIPTS := script1.py etc.  List of py scripts to install in bin.
#                Installed as script1, not script1.py.  Filtered out of
#                python library list (LIBPYFILES)
#BINSHSCRIPTS:   List of borne shell scripts to be copied to bin verbatim.
#
#SCHEMATOOLS := file.py, etc.  List of python files defining input to schema
#	        tools.
#
#BINSCRIPTS:     List of scripts to be copied to bin verbatim.
#
#                *** migrate away from BINSCRIPTS!  The extra info that
#                *** its borne shell, py, etc., will let us edit the #! line
#                *** during installation, eventually.
#



########################################################################
# Various lists of things to build
#   implemented via macros above.
########################################################################


LIBPYFILES := $(filter-out $(BINPYSCRIPTS) $(SCHEMATOOLS), $(wildcard *.py))



########################################################################
# Package-level makefile Targets
########################################################################

# this follows the all: in Makefile.top, but we drop decouple:, makefile:,
# and installdirs:, because those don't make sense at package level

all: schematools lib bin

bin:	$(foreach var, $(BINPYSCRIPTS), $(subst .py,,$(bindir)/$(var))) $(foreach var, $(BINSHSCRIPTS), $(subst .sh,,$(bindir)/$(var))) $(foreach var, $(BINSCRIPTS), $(bindir)/$(var)) 

lib:	$(foreach var, $(LIBPYFILES), $(libdir)/$(PKGNAME)/$(var))

schematools: stDeclFiles stGeneratedFiles

stDeclFiles: $(foreach var, $(SCHEMATOOLS), $(libdir)/$(PKGNAME)/$(var))

stGeneratedFiles: $(foreach var, $(subst .py,,$(SCHEMATOOLS)), $(libdir)/$(PKGNAME)Gen/$(var)_st.py) $(foreach var, $(subst .py,,$(SCHEMATOOLS)), $(libdir)/$(PKGNAME)Gen/$(var).sql) $(foreach var, $(subst .py,,$(SCHEMATOOLS)), $(libdir)/$(PKGNAME)Gen/$(var)DbiHandler.py)
 
test:

clean:

########################################################################
# Rules
########################################################################

##
# lib related
##


$(libdir)/$(PKGNAME)/%.py: $(TOPDIR)/$(PKGNAME)/%.py
	cp -p  $< $@

$(libdir)/$(PKGNAME)/__init__.py: $(TOPDIR)/$(PKGNAME)/__init__.py
	cp -p  $< $@

# verbatim copy from sourcedir to libdir, e.g., py (distutils someday...)
# keep this overly generic one below the more specific py, above.
$(libdir)/$(PKGNAME)/%: $(TOPDIR)/$(PKGNAME)/%
	cp -p  $< $@

# generate .py from schematools description of class. (Kah related)

#    Note- add a __init__ dep because everything is required to be a package 
# and so must have an __init__.  putting the dep here is a way to force the
# __init__ to be copied into the dir first so that i can immediately
# be ref'd as a package.  this is needed for schema tools ina way i don't
# grok yet

$(libdir)/$(PKGNAME)Gen/%_st.py: $(TOPDIR)/$(PKGNAME)/%.py  $(libdir)/$(PKGNAME)/__init__.py
	cd $(libdir)/$(PKGNAME); generatePy $< > $@

# generate .sql from schematools description of class. (Kah related)
$(libdir)/$(PKGNAME)Gen/%.sql: $(TOPDIR)/$(PKGNAME)/%.py
	cd $(libdir)/$(PKGNAME); generateDb $< > $@

# generate object/relational converters from schematools
# description of class. (Kah related)
$(libdir)/$(PKGNAME)Gen/%DbiHandler.py: $(TOPDIR)/$(PKGNAME)/%.py
	cd $(libdir)/$(PKGNAME); generateDbiHandler $< > $@

## 
# bin related
##
# python scripts. make script, "foo" from "foo.py".  (rewrite path #! someday)
$(bindir)/%: $(TOPDIR)/$(PKGNAME)/%.py
	cp -p  $< $@
	chmod 755 $@

# borne shell scripts

$(bindir)/%: $(TOPDIR)/$(PKGNAME)/%.sh
	cp -p  $< $@
	chmod 755 $@

# scripts to copy verbatim.
$(bindir)/%: $(TOPDIR)/$(PKGNAME)/%
	cp -p  $< $@
	chmod 755 $@


########################################################################
# Dependency generation
########################################################################
#
# not written yet.  (of all the things not to have...)
#

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3