8 changed files with 190 additions and 179 deletions
-
11ChangeLog
-
1configure.ac
-
1src/xspice/Makefile.am
-
169src/xspice/icm/GNUmakefile.in
-
164src/xspice/icm/Makefile
-
21src/xspice/icm/makedefs.in
-
1src/xspice/icm/modpath.lst
-
1src/xspice/icm/objects.inc
@ -0,0 +1,169 @@ |
|||
# The master makefile to make spiceopus (TM) like codemodels |
|||
# Under the GPLV2 or later license |
|||
# 2003 - Stefan Jones <stefan.jones@multigig.com> |
|||
|
|||
|
|||
include makedefs |
|||
|
|||
|
|||
# The codemodels to make |
|||
CMDIRS = spice2poly digital analog xtradev xtraevt |
|||
|
|||
|
|||
all: |
|||
for cm in $(CMDIRS) ; do \ |
|||
$(MAKE) cm=$$cm $$cm/$$cm.cm \ |
|||
|| exit 1; \ |
|||
done |
|||
|
|||
|
|||
install: all |
|||
$(MKDIR_P) "$(DESTDIR)$(libdir)/spice" |
|||
for cm in $(CMDIRS) ; do \ |
|||
$(INSTALL_PROGRAM) $$cm/$$cm.cm "$(DESTDIR)$(libdir)/spice" \ |
|||
|| exit 1; \ |
|||
done |
|||
|
|||
|
|||
clean: |
|||
for cm in $(CMDIRS) ; do \ |
|||
$(MAKE) cm=$$cm cm-clean \ |
|||
|| exit 1; \ |
|||
done |
|||
|
|||
|
|||
#----------------------------------------------------------------------------- |
|||
|
|||
ifdef cm |
|||
|
|||
modlst := $(shell cat $(srcdir)/$(cm)/modpath.lst) |
|||
udnlst := $(shell cat $(srcdir)/$(cm)/udnpath.lst) |
|||
|
|||
cm-dirs := $(cm) $(udnlst:%=$(cm)/%) $(modlst:%=$(cm)/%) |
|||
cm-dep-dirs := $(cm-dirs:%=%/.deps) |
|||
|
|||
|
|||
cm-gens := \ |
|||
$(modlst:%=$(cm)/%/cfunc.c) \ |
|||
$(modlst:%=$(cm)/%/ifspec.c) |
|||
|
|||
cm-objs := \ |
|||
$(cm)/dlmain.o \ |
|||
$(modlst:%=$(cm)/%/cfunc.o) \ |
|||
$(modlst:%=$(cm)/%/ifspec.o) \ |
|||
$(udnlst:%=$(cm)/%/udnfunc.o) |
|||
|
|||
cm-deps := \ |
|||
$(cm)/.deps/dlmain.P \ |
|||
$(modlst:%=$(cm)/%/.deps/cfunc.P) \ |
|||
$(modlst:%=$(cm)/%/.deps/ifspec.P) \ |
|||
$(udnlst:%=$(cm)/%/.deps/udnfunc.P) |
|||
|
|||
cm-descr := \ |
|||
$(cm)/cmextrn.h \ |
|||
$(cm)/cminfo.h \ |
|||
$(cm)/udnextrn.h \ |
|||
$(cm)/udninfo.h \ |
|||
$(cm)/objects.inc |
|||
|
|||
|
|||
-include $(cm-deps) |
|||
|
|||
|
|||
.SECONDARY : $(cm-gens) |
|||
|
|||
|
|||
cm-clean : |
|||
rm -f $(cm)/$(cm).cm |
|||
rm -f $(cm-descr) $(cm-objs) $(cm-gens) |
|||
rm -f $(cm-deps) |
|||
|
|||
#----- |
|||
|
|||
$(cm)/$(cm).cm : $(cm-objs) |
|||
$(CC) $(LDFLAGS) -o $@ $(cm-objs) |
|||
|
|||
# "order-only" prerequisites |
|||
# (info "(make) Prerequisite Types") |
|||
|
|||
$(cm-gens) $(cm-objs) $(cm-descr) : | cm-dirs |
|||
|
|||
cm-dirs : $(cm-dirs) $(cm-dep-dirs) |
|||
|
|||
$(cm-dirs) $(cm-dep-dirs) : |
|||
$(MKDIR_P) $(cm-dirs) $(cm-dep-dirs) |
|||
|
|||
#----- |
|||
# cancel builtin rules |
|||
|
|||
%.o : %.c |
|||
%.o : %.mod |
|||
|
|||
# multiple targets in a pattern group ... |
|||
# (info "(make) Pattern Intro") |
|||
|
|||
%/cmextrn.h %/cminfo.h %/udnextrn.h %/udninfo.h %/objects.inc : $(srcdir)/%/modpath.lst $(srcdir)/%/udnpath.lst |
|||
CMPP_IDIR=$(srcdir)/$(@D) CMPP_ODIR=$(@D) $(CMPP) -lst |
|||
|
|||
%/ifspec.c : $(srcdir)/%/ifspec.ifs |
|||
CMPP_IDIR=$(srcdir)/$(@D) CMPP_ODIR=$(@D) $(CMPP) -ifs |
|||
|
|||
%/cfunc.c : $(srcdir)/%/cfunc.mod |
|||
CMPP_IDIR=$(srcdir)/$(@D) CMPP_ODIR=$(@D) $(CMPP) -mod |
|||
|
|||
|
|||
gen_pp = -MD -MF $(@D)/.deps/$(basename $(<F)).pp |
|||
|
|||
define do-deps |
|||
@x=$(@D)/.deps/$(basename $(<F)) ; \ |
|||
cp $$x.pp $$x.P; \ |
|||
tr ' ' '\012' < $$x.pp \ |
|||
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ |
|||
>> $$x.P; \ |
|||
rm $$x.pp |
|||
endef |
|||
|
|||
COMPILE = $(CC) $(INCLUDES) -I$(cm) -I$(srcdir)/$(cm) $(CFLAGS) |
|||
|
|||
$(cm)/dlmain.o : $(srcdir)/dlmain.c $(cm-descr) |
|||
$(COMPILE) $(gen_pp) -o $@ -c $< |
|||
$(do-deps) |
|||
|
|||
$(cm)/%/cfunc.o : $(cm)/%/cfunc.c |
|||
$(COMPILE) $(gen_pp) -I$(srcdir)/$(<D) -o $@ -c $< |
|||
$(do-deps) |
|||
|
|||
$(cm)/%/ifspec.o : $(cm)/%/ifspec.c |
|||
$(COMPILE) $(gen_pp) -I$(srcdir)/$(<D) -o $@ -c $< |
|||
$(do-deps) |
|||
|
|||
$(cm)/%/udnfunc.o : $(srcdir)/$(cm)/%/udnfunc.c |
|||
$(COMPILE) $(gen_pp) -I$(srcdir)/$(<D) -o $@ -c $< |
|||
$(do-deps) |
|||
|
|||
endif |
|||
|
|||
#----------------------------------------------------------------------------- |
|||
|
|||
GNUmakefile makedefs : % : $(srcdir)/%.in $(top_builddir)/config.status |
|||
cd $(top_builddir) \ |
|||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status |
|||
|
|||
maintainer-clean: distclean |
|||
|
|||
distclean: clean |
|||
-rm -f GNUmakefile makedefs |
|||
|
|||
distdir: |
|||
|
|||
check: |
|||
|
|||
pdf: |
|||
|
|||
ps: |
|||
|
|||
dvi: |
|||
|
|||
html: |
|||
|
|||
info: |
|||
@ -1,164 +0,0 @@ |
|||
# The master makefile to make spiceopus (TM) like codemodels
|
|||
# Under the GPLV2 or later license
|
|||
# 2003 - Stefan Jones <stefan.jones@multigig.com>
|
|||
|
|||
include $(TOPDIR)makedefs |
|||
|
|||
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) |
|||
|
|||
-include .deps/ifspec.P |
|||
-include .deps/cfunc.P |
|||
-include .deps/udnfunc.P |
|||
-include .deps/cm.P |
|||
-include .deps/dlmain.P |
|||
|
|||
UPMAKE := $(MAKE) -f $(TOPDIR)../Makefile TOPDIR=$(TOPDIR)../ |
|||
|
|||
MAKE := $(MAKE) -f $(TOPDIR)Makefile TOPDIR=$(TOPDIR) |
|||
|
|||
COMPILE = $(CC) $(INCLUDES) $(CFLAGS) |
|||
|
|||
INSTALL_DATA = ${INSTALL} -m 644 |
|||
|
|||
ifeq ($(ISCYGWIN), 1) |
|||
INSTALL_DATA = ${INSTALL} -m 755 |
|||
endif |
|||
|
|||
all: |
|||
@for x in $(CMDIRS) ; do \
|
|||
( cd $$x && $(UPMAKE) $$x-mods ) \
|
|||
|| exit 1; \
|
|||
done |
|||
|
|||
install: all |
|||
$(mkinstalldirs) $(DESTDIR)$(libdir)/spice |
|||
@for x in $(CMDIRS) ; do \
|
|||
echo "$(INSTALL_DATA) $$x/$$x.cm $(DESTDIR)$(libdir)/spice"; \
|
|||
$(INSTALL_DATA) $$x/$$x.cm $(DESTDIR)$(libdir)/spice \
|
|||
|| exit 1; \
|
|||
done |
|||
|
|||
clean: |
|||
@for x in $(CMDIRS) ; do \
|
|||
( cd $$x && $(UPMAKE) $$x-mods-clean ) \
|
|||
|| exit 1; \
|
|||
done |
|||
-rm -rf .deps |
|||
|
|||
ifspec.c: ifspec.ifs |
|||
-rm -f $@ |
|||
$(CMPP) -ifs |
|||
|
|||
cfunc.c: cfunc.mod |
|||
-rm -f $@ |
|||
$(CMPP) -mod |
|||
|
|||
dlmain.c: $(TOPDIR)/dlmain.c |
|||
-cp $(TOPDIR)/dlmain.c . |
|||
|
|||
objects.inc cmextrn.h cminfo.h udnextrn.h udninfo.h: modpath.lst udnpath.lst |
|||
-rm -f cmextrn.h cminfo.h objects.inc udnextrn.h udninfo.h |
|||
$(CMPP) -lst |
|||
|
|||
dlmain.o: cmextrn.h cminfo.h udnextrn.h udninfo.h |
|||
|
|||
%.cm: dlmain.o objects.inc |
|||
@echo $@: objects.inc dlmain.o \\ > .deps/cm.P |
|||
@for x in `cat modpath.lst` ; do \
|
|||
echo $$x/cfunc.o $$x/ifspec.o \\ >> .deps/cm.P ; done |
|||
@for x in `cat udnpath.lst` ; do \
|
|||
echo $$x/udnfunc.o \\ >> .deps/cm.P ; done |
|||
@echo "" >> .deps/cm.P |
|||
$(CC) $(LDFLAGS) -o $@ `awk '{ print $$1 }' objects.inc` dlmain.o |
|||
|
|||
%-mods: modpath.lst udnpath.lst |
|||
@for x in `cat modpath.lst` ; do \
|
|||
( cd $$x && $(UPMAKE) objs ) \
|
|||
|| exit 1; \
|
|||
done |
|||
@for x in `cat udnpath.lst` ; do \
|
|||
( cd $$x && $(UPMAKE) uobjs ) \
|
|||
|| exit 1; \
|
|||
done |
|||
@target=`echo $@ | sed s/-mods//`; $(MAKE) $$target.cm |
|||
|
|||
%-mods-clean: |
|||
@target=`echo $@ | sed s/-mods-clean//` && rm -f $$target.cm |
|||
@for x in `cat modpath.lst` ; do \
|
|||
( cd $$x && $(UPMAKE) objs-clean ) \
|
|||
|| exit 1; \
|
|||
done |
|||
@for x in `cat udnpath.lst` ; do \
|
|||
( cd $$x && $(UPMAKE) uobjs-clean ) \
|
|||
|| exit 1; \
|
|||
done |
|||
-rm -f cmextrn.h cminfo.h objects.inc udnextrn.h udninfo.h \
|
|||
dlmain.c dlmain.o |
|||
-rm -rf .deps |
|||
|
|||
|
|||
objs: ifspec.o cfunc.o |
|||
|
|||
objs-clean: |
|||
-rm -f cfunc.c ifspec.c cfunc.o ifspec.o |
|||
-rm -rf .deps |
|||
|
|||
uobjs: udnfunc.o |
|||
|
|||
uobjs-clean: |
|||
-rm -f udnfunc.o |
|||
-rm -rf .deps |
|||
|
|||
%.o: %.c |
|||
@echo $(COMPILE) $(DEPFLAGS) .deps/$(*F).pp -c $< ; \
|
|||
$(COMPILE) $(DEPFLAGS) .deps/$(*F).pp -c $< |
|||
@-cp .deps/$(*F).pp .deps/$(*F).P; \
|
|||
tr ' ' '\012' < .deps/$(*F).pp \
|
|||
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
|
|||
>> .deps/$(*F).P; \
|
|||
rm .deps/$(*F).pp |
|||
|
|||
makedefs: $(srcdir)/makedefs.in $(top_builddir)/config.status |
|||
cd $(top_builddir) \
|
|||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status |
|||
|
|||
# Hack by SDB to enable "make mrproper" from top level.
|
|||
# Since there is no Makefile.am for this directory, we need to
|
|||
# incorporate this stuff by hand.
|
|||
MAINTAINERCLEANFILES = |
|||
|
|||
maintainer-clean: maintainer-clean-generic |
|||
rm -f `find . -type f -name "*~" -print` |
|||
rm -f `find . -type f -name "*.orig" -print` |
|||
rm -f `find . -type f -name "*.rej" -print` |
|||
rm -fR `find . -type d -name ".deps" -print` |
|||
|
|||
maintainer-clean-generic: clean |
|||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) |
|||
|
|||
|
|||
distclean: maintainer-clean |
|||
|
|||
distdir: |
|||
|
|||
check: |
|||
|
|||
pdf: pdf-am |
|||
|
|||
pdf-am: |
|||
|
|||
ps: ps-am |
|||
|
|||
ps-am: |
|||
|
|||
dvi: dvi-am |
|||
|
|||
dvi-am: |
|||
|
|||
html: html-am |
|||
|
|||
html-am: |
|||
|
|||
info: info-am |
|||
|
|||
info-am: |
|||
@ -1 +0,0 @@ |
|||
icm_spice2poly |
|||
@ -1 +0,0 @@ |
|||
icm_spice2poly/*.o |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue