You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

164 lines
3.5 KiB

# 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: