$(TOPDIR), make: Initial commit

After making most modules independent from the Hamlet tree, place
Makefiles in a central location for more centralized control over the
build process.
This commit is contained in:
Jan Lindemann 2001-07-06 13:12:14 +00:00 committed by Jan Lindemann
commit 46c67d77fc
11 changed files with 206 additions and 0 deletions

4
Makefile Normal file
View file

@ -0,0 +1,4 @@
TOPDIR=.
CLEAN = include lib
SUBDIRS = $(shell find . -type d -maxdepth 1 | grep -ve "include\|CVS\|lib" | grep /)
include $(TOPDIR)/make/dirs.mk

8
make/Makefile Normal file
View file

@ -0,0 +1,8 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
TOPDIR = ..
include $(TOPDIR)/make/text.mk

43
make/defs-orig.mk Normal file
View file

@ -0,0 +1,43 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
VERSION = $(shell cat $(TOPDIR)/VERSION)
PROJECT = mod
MOD = mod
LIBNAME = $(MOD)
OBJ = $(patsubst %.cc,%.o,$(patsubst %.c,%.o,$(wildcard *.c *.cc)))
SHOBJS = $(patsubst %.cc,lib%.so$(patsubst %.c,lib%.so,$(wildcard *.c *.cc)))
SHSCRIPTS = $(patsubst %.sh.tmpl,%.sh,$(wildcard *.sh.tmpl))
SCRIPTS = $(patsubst %.tmpl,%,$(wildcard *.tmpl))
INST_HDRS = $(patsubst %.h,$(TOPDIR)/include/%.h,$(wildcard *.h))
PREREQ_DONE = $(patsubst %,$(TOPDIR)/%/all.done,$(LOCAL_PREREQ))
TEXTCLEAN = $(wildcard *~ .*~ .*.swp \#*\#)
INCLUDE = -I$(TOPDIR)/include
LIBDIR = $(TOPDIR)/lib
LIB = $(LIBDIR)/lib$(LIBNAME).a
MEMBERS = $(LIB)($(OBJ))
PREFIX = ../
#MEMWATCH = -DMEMWATCH -DMW_STDIO
#YAMD = yamd-
#CFLAGS = -DNDEBUG -O2 -g $(INCLUDE) $(LOCAL_CFLAGS) #production
CFLAGS = -Wall -D_DEBUG_ $(MEMWATCH) -g $(INCLUDE) $(LOCAL_CFLAGS)
CPPFLAGS = -Wall -D_DEBUG_ $(MEMWATCH) -g $(INCLUDE) $(LOCAL_CPPFLAGS)
LDFFTW = -lrfftw -lfftw -lm
#LDAUDIO = -laudiofile
LDFLAGS = -L$(LIBDIR) -l$(LIBNAME) -lg++
LDREST = -ldl $(LDAUDIO) $(LDFFTW) $(LOCAL_LDFLAGS)
CC = $(YAMD)gcc
CPP = c++
RM = rm
AR = ar
INSTALL = install
define make_subdirs
set -e; for D in $(SUBDIRS) ; do make -C $$D ; done
endef
define make_subdirs_target
set -e; for D in $(SUBDIRS) ; do make -C $$D $@; done
endef

16
make/dirs.mk Normal file
View file

@ -0,0 +1,16 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
include $(TOPDIR)/make/defs.mk
all:
$(make_subdirs)
clean:
rm -rf $(TEXTCLEAN) $(CLEAN)
$(make_subdirs_target)
.DEFAULT:
$(make_subdirs_target)

10
make/exe.mk Normal file
View file

@ -0,0 +1,10 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
EXE = $(ALL)
include $(TOPDIR)/make/defs.mk
include $(TOPDIR)/make/rules.mk
clean: execlean localclean
install: $(ALL) installexe

9
make/lib.mk Normal file
View file

@ -0,0 +1,9 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
include $(TOPDIR)/make/defs.mk
include $(TOPDIR)/make/rules.mk
clean: objclean localclean
install: $(ALL)

76
make/rules.mk Normal file
View file

@ -0,0 +1,76 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
all.done: $(ALL)
touch $@
%.done:
make -C $(shell dirname $@) `basename $@`
$(LIBDIR):
mkdir -p $@
#lib$(MOD)(%.o).a: %.c $(LIBDIR)
# $(CC) $(CFLAGS) -c $< -o $*.o
# $(AR) r $@ $*.o
# $(RM) $*.o
lib%.so: %.o
$(CC) $< $(LDFLAGS) -o $@
$(TOPDIR)/include:
mkdir -p $@
$(TOPDIR)/include/%.h:%.h $(TOPDIR)/include
cp $< $@
%.o: %.c %.h
$(CC) $(CFLAGS) -c $<
%.o: %.cc %h
$(CPP) $(CPPFLAGS) -c $<
$(EXE): $(OBJ) $(LIB)
$(CC) $(OBJ) $(LDFLAGS) -o $@
$(LIBS):
make -C $(LIBDIR) all
checkroot:
test `whoami` = root
installexe: $(ALL) checkroot
$(INSTALL) $(EXE) $(PREFIX)/bin/
installso: $(ALL) checkroot
$(INSTALL) $(SHOBJS) $(PREFIX)/lib/
installsh: $(ALL)
$(INSTALL) $(SHSCRIPTS) $(PREFIX)/bin/
tmpclean:
rm -rf *.tmp
objclean:
rm -rf core .*.o *.o *.a *.so
textclean: doneclean
rm -rf $(TEXTCLEAN)
allclean:
rm -rf $(ALL)
doneclean:
rm -rf *.done
execlean: allclean objclean textclean
distclean: clean objclean textclean tmpclean
localclean:
rm -rf $(CLEAN)
libclean:
rm -rf $(LIB)

10
make/scripts.mk Normal file
View file

@ -0,0 +1,10 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
ALL = $(SCRIPTS)
include $(TOPDIR)/make/defs.mk
include $(TOPDIR)/make/rules.mk
clean:allclean localclean
#install:installexe

11
make/so.mk Normal file
View file

@ -0,0 +1,11 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
include $(TOPDIR)/make/defs.mk
ALL = $(SHOBJS)
LDFLAGS := $(LDFLAGS) -shared
include $(TOPDIR)/make/rules.mk
clean: objclean textclean localclean
install: $(ALL) installso

9
make/text.mk Normal file
View file

@ -0,0 +1,9 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
include $(TOPDIR)/make/defs.mk
include $(TOPDIR)/make/rules.mk
clean: textclean localclean
install: # nothing to be done

10
make/tools.mk Normal file
View file

@ -0,0 +1,10 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
include $(TOPDIR)/make/defs.mk
ALL = $(LIBDIR) $(PREREQ_DONE) $(INST_HDRS) $(MEMBERS)
include $(TOPDIR)/make/rules.mk
clean: objclean textclean localclean
install: $(ALL)