# generic utility modules # (c) 2001 jannet it services # 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) LOCAL_WINVERSION = $(shell cat VERSION | sed -e "s/\./_/g") DIST_VERSION = $(shell echo $(VERSION) | sed -e "s/-dev//") 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//") #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)))) SHSCRIPTS = $(patsubst %.sh.tmpl,%.sh,$(wildcard *.sh.tmpl)) SCRIPTS = $(patsubst %.tmpl,%,$(wildcard *.tmpl)) INST_HDRS = $(patsubst %.h,$(TOPDIR)/include/%.h,$(wildcard *.h)) LOCAL_H = $(wildcard *.h) LOCAL_C = $(wildcard *.c) LOCAL_CPP = $(wildcard *.c *.cpp *.cc *.C) LOCAL_CSRC = $(LOCAL_H) $(LOCAL_C) $(LOCAL_CPP) PREREQ_DIR = $(patsubst %,$(MODDIR)/%,$(LOCAL_PREREQ)) PREREQ_DONE = $(patsubst %,%/all.done,$(PREREQ_DIR)) PREREQ_H = $(foreach dir,$(PREREQ_DIR),$(wildcard $(dir)/*.h)) PREREQ_C = $(foreach dir,$(PREREQ_DIR),$(wildcard $(dir)/*.c)) PREREQ_CPP = $(foreach dir,$(PREREQ_DIR),$(wildcard $(dir)/*.c)) \ $(foreach dir,$(PREREQ_DIR),$(wildcard $(dir)/*.cpp)) PREREQ_CSRC = $(PREREQ_H) $(PREREQ_C) $(PREREQ_CPP) ALL_H = $(LOCAL_H) $(PREREQ_H) ALL_C = $(LOCAL_C) $(PREREQ_CPP) ALL_CPP = $(LOCAL_CPP) $(PREREQ_CPP) ALL_CSRC = $(LOCAL_CSRC) $(PREREQ_CSRC) TEXTCLEAN = $(wildcard *~ .*~ .*.swp \#*\#) INCLUDE = -I. -I$(TOPDIR)/include -I$(MODDIR)/include $(PROJECT_INCLUDE) $(LOCAL_INCLUDE) LIBDIR = $(MODDIR)/lib LIB = $(LIBDIR)/lib$(LIBNAME).a MEMBERS = $(LIB)($(OBJ)) #PREFIX = ../# CAUTION: This breaks the installation in the project #MEMWATCH = -DMEMWATCH -DMW_STDIO #YAMD = yamd- #EFENCE = -lefence #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) $(EFENCE) -l$(LIBNAME) -lg++ $(PROJECT_LDFLAGS) $(LOCAL_LDFLAGS) LDREST = -ldl $(LDAUDIO) $(LDFFTW) CC = $(YAMD)gcc CPP = $(YAMD)g++ 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