diff --git a/make/defs-orig.mk b/make/defs-orig.mk index e7f9fd9c..a0111eaf 100644 --- a/make/defs-orig.mk +++ b/make/defs-orig.mk @@ -3,6 +3,11 @@ # contact@jannet.de # $Id$ +# doesn't work :-( +#ifndef $(PROJECT) +# PROJECT := yannet +#endif + VERSION = $(shell cat $(TOPDIR)/VERSION) WINVERSION = $(shell cat $(TOPDIR)/VERSION | sed -e "s/\./_/g") LOCAL_VERSION = $(shell cat VERSION) @@ -12,14 +17,16 @@ DIST_WINVERSION = $(shell echo $(WINVERSION) | sed -e "s/-dev//") LOCAL_DIST_VERSION = $(shell echo $(LOCAL_VERSION) | sed -e "s/-dev//") LOCAL_DIST_WINVERSION = $(shell echo $(LOCAL_WINVERSION) | sed -e "s/-dev//") -PROJECT = mod -MOD = mod -LIBNAME = $(MOD) +#ifndef $(TOPDIR) +# TOPDIR := $(MODDIR) +#endif + +LIBNAME = $(PROJECT) CFILES = $(wildcard *.c) CPPFILES = $(wildcard *.cc *.cpp) CALLSRC = $(CFILES) $(CPPFILES) OBJ = $(patsubst %.cpp,%.o,$(patsubst %.cc,%.o,$(patsubst %.c,%.o,$(CALLSRC)))) -SHOBJS = $(patsubst %.cpp,%.o,$(patsubst %.cc,lib%.so,$(patsubst %.c,lib%.so,$(CALLSRC))) +SHOBJS = $(patsubst %.cpp,%.o,$(patsubst %.cc,lib%.so,$(patsubst %.c,lib%.so,$(CALLSRC)))) SHSCRIPTS = $(patsubst %.sh.tmpl,%.sh,$(wildcard *.sh.tmpl)) SCRIPTS = $(patsubst %.tmpl,%,$(wildcard *.tmpl)) INST_HDRS = $(patsubst %.h,$(TOPDIR)/include/%.h,$(wildcard *.h)) @@ -44,11 +51,11 @@ ALL_CPP = $(LOCAL_CPP) $(PREREQ_CPP) ALL_CSRC = $(LOCAL_CSRC) $(PREREQ_CSRC) TEXTCLEAN = $(wildcard *~ .*~ .*.swp \#*\#) -INCLUDE = -I$(TOPDIR)/include -LIBDIR = $(TOPDIR)/lib +INCLUDE = -I. -I$(TOPDIR)/include -I$(MODDIR)/include $(PROJECT_INCLUDE) +LIBDIR = $(MODDIR)/lib LIB = $(LIBDIR)/lib$(LIBNAME).a MEMBERS = $(LIB)($(OBJ)) -PREFIX = ../ +#PREFIX = ../# CAUTION: This breaks the installation in the project #MEMWATCH = -DMEMWATCH -DMW_STDIO #YAMD = yamd- EFENCE = -lefence @@ -57,8 +64,8 @@ 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) $(EFENCE) -l$(LIBNAME) -lg++ -LDREST = -ldl $(LDAUDIO) $(LDFFTW) $(LOCAL_LDFLAGS) +LDFLAGS = -L$(LIBDIR) $(EFENCE) -l$(LIBNAME) -lg++ $(PROJECT_LDFLAGS) $(LOCAL_LDFLAGS) +LDREST = -ldl $(LDAUDIO) $(LDFFTW) CC = $(YAMD)gcc CPP = $(YAMD)g++ RM = rm diff --git a/make/dirs.mk b/make/dirs.mk index 27244ec2..1e3cd60f 100644 --- a/make/dirs.mk +++ b/make/dirs.mk @@ -3,7 +3,7 @@ # contact@jannet.de # $Id$ -include $(TOPDIR)/make/defs.mk +include $(MODDIR)/make/defs.mk all: $(make_subdirs) diff --git a/make/exe.mk b/make/exe.mk index b394708c..2f82ed25 100644 --- a/make/exe.mk +++ b/make/exe.mk @@ -4,7 +4,7 @@ # $Id$ EXE = $(ALL) -include $(TOPDIR)/make/defs.mk -include $(TOPDIR)/make/rules.mk +include $(MODDIR)/make/defs.mk +include $(MODDIR)/make/rules.mk clean: execlean localclean install: $(ALL) installexe diff --git a/make/lib.mk b/make/lib.mk index 7b57bbc9..5fce5e5a 100644 --- a/make/lib.mk +++ b/make/lib.mk @@ -3,7 +3,7 @@ # contact@jannet.de # $Id$ -include $(TOPDIR)/make/defs.mk -include $(TOPDIR)/make/rules.mk -clean: objclean localclean +include $(MODDIR)/make/defs.mk +include $(MODDIR)/make/rules.mk +clean: objclean localclean doneclean install: $(ALL) diff --git a/make/rules.mk b/make/rules.mk index bbac373b..9daf8ec0 100644 --- a/make/rules.mk +++ b/make/rules.mk @@ -23,8 +23,8 @@ lib%.so: %.o $(TOPDIR)/include: mkdir -p $@ -$(TOPDIR)/include/%.h:%.h $(TOPDIR)/include - cp $< $@ +$(TOPDIR)/include/%.h: $(TOPDIR)/include %.h + cp $(@F) $@ %.o: %.cpp $(CPP) $(CPPFLAGS) -c $< @@ -38,16 +38,23 @@ $(EXE): $(OBJ) $(LIB) $(LIBS): make -C $(LIBDIR) all -checkroot: - test `whoami` = root +$(PREFIX) $(PREFIX)/%: + mkdir -p $@ -installexe: $(ALL) checkroot +checkroot: + @if [ "$(CHECK_ROOT)" = true -o "$(CHECK_ROOT)" = TRUE ] ; then \ + echo "Error: You can only do this if either" ;\ + echo " a) you are user \"root\"" ;\ + echo " b) the Makefile variable CHECK_ROOT does not contain \"true\" as value." ;\ + fi + +installexe: $(ALL) checkroot $(PREFIX)/bin $(INSTALL) $(EXE) $(PREFIX)/bin/ -installso: $(ALL) checkroot +installso: $(ALL) checkroot $(PREFIX)/lib $(INSTALL) $(SHOBJS) $(PREFIX)/lib/ -installsh: $(ALL) +installsh: $(ALL) checkroot $(PREFIX)/bin $(INSTALL) $(SHSCRIPTS) $(PREFIX)/bin/ pckgclean: diff --git a/make/scripts.mk b/make/scripts.mk index 2b1272d6..dddb29ee 100644 --- a/make/scripts.mk +++ b/make/scripts.mk @@ -4,7 +4,7 @@ # $Id$ ALL = $(SCRIPTS) -include $(TOPDIR)/make/defs.mk -include $(TOPDIR)/make/rules.mk -clean:allclean localclean +include $(MODDIR)/make/defs.mk +include $(MODDIR)/make/rules.mk +clean:allclean localclean doneclean #install:installexe diff --git a/make/so.mk b/make/so.mk index 63577343..bc1c444c 100644 --- a/make/so.mk +++ b/make/so.mk @@ -3,9 +3,9 @@ # contact@jannet.de # $Id$ -include $(TOPDIR)/make/defs.mk +include $(MODDIR)/make/defs.mk ALL = $(SHOBJS) LDFLAGS := $(LDFLAGS) -shared -include $(TOPDIR)/make/rules.mk +include $(MODDIR)/make/rules.mk clean: objclean textclean localclean install: $(ALL) installso diff --git a/make/text.mk b/make/text.mk index 7873a467..c0af40ce 100644 --- a/make/text.mk +++ b/make/text.mk @@ -3,7 +3,7 @@ # contact@jannet.de # $Id$ -include $(TOPDIR)/make/defs.mk -include $(TOPDIR)/make/rules.mk +include $(MODDIR)/make/defs.mk +include $(MODDIR)/make/rules.mk clean: textclean localclean install: # nothing to be done diff --git a/make/tools.mk b/make/tools.mk index c5daf272..bbc8af02 100644 --- a/make/tools.mk +++ b/make/tools.mk @@ -3,8 +3,8 @@ # contact@jannet.de # $Id$ -include $(TOPDIR)/make/defs.mk +include $(MODDIR)/make/defs.mk ALL = $(LIBDIR) $(PREREQ_DONE) $(INST_HDRS) $(MEMBERS) -include $(TOPDIR)/make/rules.mk +include $(MODDIR)/make/rules.mk clean: objclean textclean localclean install: $(ALL)