jw-pkg/make/defs.mk

220 lines
7.4 KiB
Makefile
Raw Normal View History

2002-07-19 19:48:27 +00:00
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
ifndef LIBNAME
LIBNAME := $(PROJECT)
endif
2002-07-19 19:48:27 +00:00
2002-07-20 10:26:53 +00:00
WINVERSION = $(shell echo $(VERSION) | sed -e "s/\./_/g")
LOCAL_VERSION = $(shell echo $(VERSION))
LOCAL_WINVERSION = $(shell echo $(VERSION) | sed -e "s/\./_/g")
2002-07-19 19:48:27 +00:00
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//")
#DEVELOPMENT = $(shell echo $(VERSION) | grep 'dev' >/dev/null && echo true)
2002-07-19 19:48:27 +00:00
PROJECT_STEM = $(PROJECT)-$(DIST_VERSION)
2002-07-29 14:11:58 +00:00
CVS_ROOT_DIR = $(shell test -d CVS && pwd | sed -e "s%`cat CVS/Repository`%%; s%/$$%%")
2002-07-19 19:48:27 +00:00
FTP_PCKG_DIR = /pub/packages
JANNET_PROJ_DIR = rsync_ssh://ftp.jannet.de:/usr/local/ftp$(FTP_PCKG_DIR)
GCC_VERSION = $(shell gcc -v 2>&1 | grep version | awk '{ print $$3;}')
GCC_MAJOR = $(shell gcc -v 2>&1 | grep version | awk '{ split($$3,a,"."); print a[1];}')
GCC_MINOR = $(shell gcc -v 2>&1 | grep version | awk '{ split($$3,a,"."); print a[2];}')
GCC_REV = $(shell gcc -v 2>&1 | grep version | awk '{ split($$3,a,"."); print a[3];}')
YTOOLS_VERSION = @PACKAGE_VERSION@
YTOOLS_VERSION_STR = \"@PACKAGE_VERSION@\"
2002-07-19 19:48:27 +00:00
#ifndef $(TOPDIR)
# TOPDIR := $(MODDIR)
#endif
CPP = g++
EXE_SH = $(wildcard *.sh)
MKFILES = $(wildcard *.mk)
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))
LOCAL_HDR = $(patsubst %.h,$(TOPDIR)/include/%.h,$(wildcard *.h))
LOCAL_EXE_SH = $(patsubst %.sh,$(TOPDIR)/bin/%.sh,$(wildcard *.sh))
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 = $(addprefix $(MODDIR)/,$(LOCAL_PREREQ))
PREREQ_DONE = $(addsuffix /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)
CONTRIB_MOD = $(addprefix contrib/,$(CONTRIB_LIBS))
REQUIRED := $(CONTRIB_MOD) $(REQUIRED)
REQUIRED_DIR = $(patsubst %,$(MODDIR)/%,$(REQUIRED))
REQUIRED_DONE = $(patsubst %,%/all.done,$(REQUIRED_DIR))
REQUIRED_H = $(foreach dir,$(REQUIRED_DIR),$(wildcard $(dir)/*.h))
REQUIRED_C = $(foreach dir,$(REQUIRED_DIR),$(wildcard $(dir)/*.c))
REQUIRED_CPP = $(foreach dir,$(REQUIRED_DIR),$(wildcard $(dir)/*.cpp)) \
$(foreach dir,$(PREREQ_DIR),$(wildcard $(dir)/*.cpp))
REQUIRED_CSRC = $(REQUIRED_H) $(REQUIRED_C) $(REQUIRED_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 *.rep)
INCLUDE = -I. -I$(TOPDIR)/include -I$(MODDIR)/include $(PROJECT_INCLUDE) $(LOCAL_INCLUDE)
INSTALL_LIBDIR = $(PREFIX)/lib
INSTALL_HDRDIR = $(PREFIX)/include
INSTALL_MKDIR = $(PREFIX)/make
INSTALL_BINDIR = $(PREFIX)/bin
BUILD_BINDIR = $(TOPDIR)/bin
INSTALL_DOCDIR_DIST = $(DOC_PREFIX)
INSTALL_DOCDIR_DEVEL = $(DOC_PREFIX)-devel
DOCS = $(wildcard README CHANGES TODO LICENSE AUTHORS CREDITS *.pdf *.txt *.html)
DOCSUBDIRS = $(wildcard html tex info examples src)
INSTALLED_VERSION_FILE = $(PREFIX)/VERSION
INSTALLED_DOCS_DIST = $(addprefix $(INSTALL_DOCDIR_DIST)/,$(DOCS))
INSTALLED_DOCS_DEVEL = $(addprefix $(INSTALL_DOCDIR_DEVEL)/,$(DOCS))
SO_SUFFIX = so.$(shell echo $(VERSION) | cut -d- -f1)
LIB_A = $(LIBDIR)/lib$(LIBNAME).a
LIB_SO = $(LIBDIR)/lib$(LIBNAME).$(SO_SUFFIX)
INSTALLED_LIB_SO = $(INSTALL_LIBDIR)/lib$(LIBNAME).$(SO_SUFFIX)
INSTALLED_LINKS_SO = $(shell echo $(INSTALLED_LIB_SO) | sed -e "s/\.so\..*$$/.so/" | grep -v $(INSTALLED_LIB_SO))
LINKS_SO = $(shell echo $(LIB_SO) | sed -e "s/\.so\..*$$/.so/" | grep -v $(LIB_SO))
INSTALLED_LIB_A = $(INSTALL_LIBDIR)/lib$(LIBNAME).a
INSTALLED_EXE = $(INSTALL_BINDIR)/$(EXE)
INSTALLED_EXE_SH = $(addprefix $(INSTALL_BINDIR)/,$(EXE_SH))
INSTALLED_EXE_BIN = $(addprefix $(INSTALL_BINDIR)/,$(EXE_BIN))
INSTALLED_MKFILES = $(addprefix $(INSTALL_MKDIR)/,$(MKFILES))
INSTALLED_H = $(addprefix $(INSTALL_HDRDIR)/,$(LOCAL_H))
INSTALLED_PROFILE_PATH_SCRIPT = $(ENV_PREFIX)/etc/profile.d/path_$(PROJECT).sh
MEMBERS = $(LIB_A)($(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_DEBUG = -Wall -D_DEBUG_ -g3 $(MEMWATCH)
CPPFLAGS_DEBUG = $(CFLAGS_DEBUG)
CFLAGS += $(INCLUDE) $(PROJECT_CFLAGS) $(LOCAL_CFLAGS) $(YLIB_CFLAGS)
CPPFLAGS += $(INCLUDE) $(PROJECT_CPPFLAGS) $(LOCAL_CPPFLAGS) $(YLIB_CPPFLAGS)
LDFFTW = -lrfftw -lfftw -lm
#LDAUDIO = -laudiofile
ifeq ($(DEVELOPMENT),true)
CFLAGS += $(CFLAGS_DEBUG)
CPPFLAGS += $(CPPFLAGS_DEBUG)
endif
LIBDIR = $(TOPDIR)/lib
INSTALLED_SHOBJS = $(addprefix $(INSTALL_LIBDIR)/,$(SHOBJS))
ifeq ($(USE_QT),true)
USE_X = true
MOC = /usr/lib/qt2/bin/moc
UIC = /usr/lib/qt2/bin/uic
MOC_CPP = $(patsubst %.h,moc_%.cpp,$(MOC_HEADER))
OBJ += $(patsubst %.cpp,%.o,$(MOC_CPP))
LPPFLAGS += -L/usr/lib/qt2/lib -lqt
INCLUDE += -I/usr/lib/qt2/include
endif
ifeq ($(USE_X),true)
LDFLAGS += -L/usr/X11/lib -lXext -lX11
endif
ifeq ($(GCC_MAJOR),2)
LPPFLAGS += -lg++ -lstdc++
else
LPPFLAGS += -lstdc++ -L/usr/local/lib
endif
ifeq ($(LIBTYPE),shared)
LDFLAGS += -rdynamic
endif
ifeq ($(USE_PROJECT_LIB),true)
PROJECTLIB_LDFLAGS = -l$(LIBNAME)
endif
ifeq ($(USE_PROFILER),true)
CFLAGS += -fprofile-arcs -ftest-coverage
CPPFLAGS += -fprofile-arcs -ftest-coverage
LDFLAGS += -fprofile-arcs -ftest-coverage
endif
ifeq ($(USE_TIMER),true)
CFLAGS += -D_USE_TIMER_
CPPFLAGS += -D_USE_TIMER_
endif
LDFLAGS += -L$(LIBDIR) $(PROJECTLIB_LDFLAGS) $(LOCAL_LDFLAGS) $(PROJECT_LDFLAGS) $(LPPFLAGS)
LDREST += $(LDAUDIO) $(LDFFTW) -ldl
CC = $(YAMD)gcc
CPP = $(YAMD)g++
RM = rm
AR = ar
ifneq ($(wildcard $(MODDIR)/devutil/scripts),)
MOD_SCRIPT_DIR = $(MODDIR)/devutil/scripts
else
MOD_SCRIPT_DIR = $(MODDIR)/bin
endif
ifdef INSTALL_LOG
INSTALL=$(MOD_SCRIPT_DIR)/log_install.sh -l $(INSTALL_LOG)
LINK_LIB=$(MOD_SCRIPT_DIR)/log_install.sh -L -l $(INSTALL_LOG)
else
ifndef INSTALL
INSTALL = install
endif
ifndef LINK_LIB
LINK_LIB=$(MOD_SCRIPT_DIR)/log_install.sh -L
endif
endif
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
2002-07-25 20:27:58 +00:00
define install_local_cfg
$(INSTALL) -o $(CFGOWNER) -g $(CFGGROUP) -m $(CFGMODE) $< $@
endef
2002-07-19 19:48:27 +00:00
LD_LIBRARY_PATH = $(LIBDIR)
export LD_LIBRARY_PATH
UPLOAD_URL_RPM_BIN=rsync_ssh://ftp.jannet.de:/usr/local/ftp/pub/packages/rpm/bin/
UPLOAD_URL_RPM_SRC=rsync_ssh://ftp.jannet.de:/usr/local/ftp/pub/packages/rpm/src/
2002-07-29 14:11:58 +00:00