mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 03:53:32 +01:00
160 lines
5.2 KiB
Makefile
160 lines
5.2 KiB
Makefile
# generic utility modules
|
|
# (c) 2001 jannet it services
|
|
# contact@jannet.de
|
|
# $Id$
|
|
|
|
# doesn't work :-(
|
|
ifndef PROJECT
|
|
PROJECT := yannet
|
|
LIBNAME := yannet
|
|
else
|
|
LIBNAME := $(PROJECT)
|
|
endif
|
|
|
|
ifndef TOPDIR
|
|
TOPDIR := $(MODDIR)
|
|
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//")
|
|
DEVELOPMENT = $(shell cat $(TOPDIR)/VERSION | grep 'dev' >/dev/null && echo true)
|
|
|
|
ifeq ($(DEVELOPMENT),true)
|
|
include $(TOPDIR)/make/cfg_dev.mk
|
|
else
|
|
include $(TOPDIR)/make/cfg_dist.mk
|
|
endif
|
|
|
|
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];}')
|
|
|
|
#ifndef $(TOPDIR)
|
|
# TOPDIR := $(MODDIR)
|
|
#endif
|
|
|
|
CPP = g++
|
|
|
|
#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 = $(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
|
|
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_DEBUG = -Wall -D_DEBUG_ -g3 $(MEMWATCH)
|
|
CFLAGS = $(INCLUDE) $(PROJECT_CFLAGS) $(CFLAGS_DEBUG) $(LOCAL_CFLAGS) $(YLIB_CFLAGS)
|
|
CPPFLAGS = $(INCLUDE) $(PROJECT_CPPFLAGS) $(CPPFLAGS_DEBUG) $(LOCAL_CPPFLAGS) $(YLIB_CPPFLAGS)
|
|
LDFFTW = -lrfftw -lfftw -lm
|
|
#LDAUDIO = -laudiofile
|
|
|
|
ifeq ($(DEVELOPMENT),true)
|
|
CFLAGS += $(CFLAGS_DEBUG)
|
|
CPPFLAGS += $(CFLAGS_DEBUG)
|
|
endif
|
|
|
|
LIBDIR = $(MODDIR)/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 ($(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
|
|
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
|