Everywhere: Remove everything non-essential for "make clean all"

This commit removes everything not strictly necessary for running
"make clean all" inside jw-build.

packaging jw-devtest. This cuts the repo down from 24077 to 4725
lines of code.

The idea is to

1) Further remove bloat from the remaining bits

2) Re-add what's necessary to build and package other essential repos.

   The decision should be based on whether or not jw-build can also be
   useful in a non-janware context.

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2025-11-14 15:02:56 +01:00
commit bc883deed4
199 changed files with 0 additions and 18851 deletions

View file

@ -1,49 +0,0 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
CONFIG_ACDONE := $(wildcard config.acdone)
DISTCLEAN += configure config.log autoscan.log configure.ac config.status
AC_FILES_IN = $(shell find . -maxdepth 2 -name '*.in' | grep -ve "contrib\|dist\|nomake")
AC_FILES = $(basename $(AC_FILES_IN))
all: config.acdone make_all
config: config.acdone $(AC_FILES)
install: config $(AC_FILES) make_install
distclean: confclean acclean
rpm-release: config.acdone make_rpm_release
make_all: config $(AC_FILES)
if [ -z "$(CONFIG_ACDONE)" ]; then make all; fi
make_rpm_release: config $(AC_FILES)
if [ -z "$(CONFIG_ACDONE)" ]; then make rpm-release; fi
make_install:
if [ -z "$(CONFIG_ACDONE)" ]; then make $@; fi
confclean:
$(RM) -rf $(DISTCLEAN) $(CLEAN) $(AC_FILES) autom4te.cache
configure.ac: configure.ac.tmpl VERSION
$(CAT) $< | $(SED) -e "s/_VERSION_/`$(CAT) VERSION | $(SED) 's/-dev//'`/" > $@
configure: configure.ac
autoconf $< > $@
chmod 755 $@
config.status: configure
./configure --no-create $(CONFIGURE_OPTS)
config.acdone: config.status
./config.status
touch $@
$(TOPDIR)/make/%.mk: $(TOPDIR)/make/%.mk.in config.status
./config.status $@
touch $@
$(TOPDIR)/include/%.h: $(TOPDIR)/include/%.h.in config.status
./config.status $@
touch $@
acclean:
$(RM) -f *.acdone

View file

@ -1,16 +0,0 @@
BACKUP_SOURCE ?= .
BACKUP_TARGET ?= ..
BACKUP_DATE ?= $(shell date +'%y%m%d-%H%M%S')
_BACKUP_SOURCE = $(notdir $(shell cd $(BACKUP_SOURCE); $(PWD)))
ifndef BACKUP_MK_INCLUDED
BACKUP_MK_INCLUDED = true
backup: distclean
tar -C .. $(_BACKUP_SOURCE) -cjf $(BACKUP_TARGET)/$(_BACKUP_SOURCE)-$(BACKUP_DATE).tar.bz2
purge-last-backup:
$(RM) -f $(shell ls $(BACKUP_TARGET)/$(_BACKUP_SOURCE)-*.tar.bz2 | tail -1)
endif # ifndef BACKUP_MK_INCLUDED

View file

@ -1,12 +0,0 @@
# generic utility modules
# (c) 2005 jannet it services
# contact@jannet.de
# $Id$
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/defs-cpp.mk
all install:
clean distclean:
$(RM) -rf $(filter-out $(LOCAL_MKFILES) CVS debug release,$(wildcard *))
test:

View file

@ -1,28 +0,0 @@
.NOTPARALLEL:
all: do.all
install: do.install
clean: do.clean
distclean: do.distclean
include $(JWBDIR)/make/defs.mk
SUBDIRS ?= $(FIND_SUBDIRS)
ifeq ($(FORCE_REBUILD_CLEANDIRS),true)
SUBDIRS_ALL = $(SUBDIRS)
SUBDIRS_INSTALL = $(SUBDIRS)
else
SUBDIRS_ALL ?=
SUBDIRS_INSTALL ?=
endif
do.all:
set -e; for d in $(SUBDIRS_ALL); do make -wC $$d $*; done
do.install:
set -e; for d in $(SUBDIRS_INSTALL); do make -wC $$d $*; done
do.%:
set -e; for d in $(SUBDIRS); do make -wC $$d $*; done
$(RM) -rf $(TEXTCLEAN) $(CLEAN) *.done *~ .*.swp *.tmp core *.rep dirs-*.done

View file

@ -1,23 +0,0 @@
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/rules.mk
include $(JWBDIR)/make/dev-utils.mk
all:
clean: clean.conf
install: install_CFG install_files_SYSCFG install_files_LOGROT install_files_CRONTAB install_files_RSYSLOG \
install_files_APACHE_CONF install_files_SYSTEMD install_files_INIT install_files_TMPFILES $(CONF_D)
test:
clean.conf:
$(RM) -rf *~ .*.swp *.done
ifneq ($(CONFIG_SUBDIR),)
$(INSTALLED_CFG): $(INSTALL_CFGDIR)
endif
ifneq ($(CONF_D),)
INSTALLED_CONF_D = $(addprefix $(INSTALL_CFGDIR)/,$(CONF_D))
$(INSTALL_CFGDIR)/$(CONF_D):
$(INSTALL) -d -m $(CFGDIRMODE) -o $(CFGDIROWNER) -g $(CFGDIRGROUP) $@
install: $(INSTALLED_CONF_D)
endif

View file

@ -1,47 +0,0 @@
# generic utility modules
# (c) 2005 jannet it services
# contact@jannet.de
# $Id$
LOCAL_PATCHES = $(notdir $(CFG_PATCHES))
LOCAL_PATCH_DONE = $(addsuffix .done, $(LOCAL_PATCHES))
ifndef CFG_PATCH_COMMAND
CFG_PATCH_COMMAND=(cd $(CFG_WORKING_DIR); patch -p1)
endif
all: apply-patches.done $(CFG_BUILD)
ifndef CFG_BUILD
make -C $(CFG_WORKING_DIR) all
endif
install: all $(CFG_INSTALL)
ifndef CFG_INSTALL
make -C $(CFG_WORKING_DIR) install
endif
clean: $(CFG_CLEAN)
ifndef CFG_CLEAN
if [ -d "$(CFG_WORKING_DIR)" ]; then make -C $(CFG_WORKING_DIR) clean; fi
endif
unpack.done:
tar -xzf $(CFG_PKG)
touch $@
$(LOCAL_PATCHES): $(filter %$@,$(CFG_PATCHES))
cp $(filter %$@,$(CFG_PATCHES)) $@
%.patch.done: %.patch
$(CFG_PATCH_COMMAND) < $<
touch $@
apply-patches.done: unpack.done $(LOCAL_PATCH_DONE)
touch $@
install:
distclean:
$(RM) -rf *.done *.patch $(CFG_WORKING_DIR)
unpack: unpack.done
apply-patches: apply-patches.done

View file

@ -1,8 +0,0 @@
ifndef CPP_EXTRA_TARGETS_MK_INCLUDED
CPP_EXTRA_TARGETS_MK_INCLUDED = true
all:
expand-macros:
make 2>/dev/null | sed '/$(CC)\|$(CXX)/ !d; s/$(CC)\|$(CXX)//; s/-o .*//' | grep -v "Wl\|rdynamic" | xargs $(CXX) -E -C | indent
endif # ifndef CPP_EXTRA_TARGETS_MK_INCLUDED

View file

@ -1 +0,0 @@
include $(JWBDIR)/make/tools.mk

View file

@ -1,23 +0,0 @@
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/rules.mk
all:
clean: clean.conf
install: install_CFG install_files_SYSCFG install_files_LOGROT $(CONF_D)
clean.conf:
$(RM) -rf *~ .*.swp *.done
ifneq ($(CONFIG_SUBDIR),)
$(INSTALLED_CFG): $(INSTALL_CFGDIR)
$(INSTALL_CFGDIR):
install -d -m $(CFGDIRMODE) -d $(CFGDIROWNER) -g $(CFGDIRGROUP) $@
endif
ifneq ($(CONF_D),)
INSTALLED_CONF_D = $(addprefix $(INSTALL_CFGDIR)/,$(CONF_D))
$(INSTALL_CFGDIR)/$(CONF_D):
install -d -m $(CFGDIRMODE) -d $(CFGDIROWNER) -g $(CFGDIRGROUP) $@
install: $(INSTALLED_CONF_D)
endif

View file

@ -1,44 +0,0 @@
DAV_GROUP ?= jannet
DAV_GROUP_PROJECT ?= $(PROJECT_DIRNAME)
DAV_GROUP_PROJECT_GROUP ?= $(shell id -gn)
DAV_GROUP_PROJECT_USER ?= $(shell id -un)
DAV_SERVER ?= cvs.janware.com
DAV_RSYNC_SERVER ?= $(DAV_SERVER)
DAV_RSYNC_DIR ?= /srv/dav/pub/groups/$(DAV_GROUP)/$(DAV_GROUP_PROJECT)
DAV_RSYNC_URL = $(DAV_RSYNC_SERVER):$(DAV_RSYNC_DIR)
DAV_RSYNC_EXCLUDE ?= $(shell bash $(JWB_SCRIPT_DIR)/scm.sh ls-files)
DAV_RSYNC_EXCLUDE_OPTS = $(addprefix --exclude , $(DAV_RSYNC_EXCLUDE) '*.done')
DAV_RSYNC_EXTRA_OPTS ?=
DAV_RSYNC ?= rsync $(DAV_RSYNC_EXCLUDE_OPTS)
DAV_RSYNC_MODE ?= 664
DAV_RSYNC_DIRMODE ?= 775
include $(JWBDIR)/make/defs.mk
all:
install:
clean:
distclean: dav.clean
upload: upload.done
dload download: dload.done
delete-remote:
ssh $(DAV_RSYNC_SERVER) $(RM) -rf $(DAV_RSYNC_DIR)
upload.done:
$(DAV_RSYNC) \
--chmod F$(DAV_RSYNC_MODE) \
--chmod D$(DAV_RSYNC_DIRMODE) \
--chown $(DAV_GROUP_PROJECT_USER):$(DAV_GROUP_PROJECT_GROUP) \
-av \
$(DAV_RSYNC_EXTRA_OPTS) \
./ \
$(DAV_RSYNC_URL)/
touch $@
dload.done:
$(DAV_RSYNC) -av $(DAV_RSYNC_URL)/ ./
touch $@
dav.clean:
$(RM) -f upload.done dload.done

View file

@ -1,83 +0,0 @@
CORE_IGNORE := $(wildcard *.intern-state*)
CORE_VG ?= $(firstword $(filter-out $(CORE_IGNORE),$(wildcard vgcore vgcore.*)))
CORE_REGULAR ?= $(firstword $(filter-out $(CORE_IGNORE),$(wildcard core core.*)))
CORE ?= $(firstword $(CORE_VG) $(CORE_REGULAR))
ifneq ($(CORE),)
ifneq ($(CORE),$(CORE_VG)) # trick doesn't work on valgrind cores
CORE_DUMPER = $(shell echo -e "quit" | $(DEBUGGER) --core=$(CORE) 2>&1 | \
$(SED) '/Core was generated/ !d; s/Core was generated by `//; s/ .*//; s/\x27\.$$//')
else
CORE_DUMPER = $(EXE_PATH)
endif
else ifeq ($(CORE_DUMPER),)
CORE_DUMPER = $(EXE_PATH)
endif
PID = $(shell pidof $(EXE_PATH))
all:
distclean: distclean.debugger
distclean.debugger:
rm -f .gdb_history
gdb ddd:
ifneq ($(CORE),)
$@ --core=$(CORE) --args $(CORE_DUMPER) $(EXE_ARGS)
else
$@ --args $(CORE_DUMPER) $(EXE_ARGS)
endif
lldb:
ifneq ($(CORE),)
$@ --core $(CORE) -f $(CORE_DUMPER) -- $(EXE_ARGS)
else
$@ -f $(CORE_DUMPER) -- $(EXE_ARGS)
endif
kdbg:
$@ $(CORE_DUMPER) $(CORE) -a "$(EXE_ARGS)"
cgdb:
ifneq ($(CORE),)
$@ -- --core=$(CORE) --args $(CORE_DUMPER) $(EXE_ARGS)
else
$@ -- --args $(CORE_DUMPER) $(EXE_ARGS)
endif
attach:
$(DEBUGGER) $(EXE_PATH) -p $(PID)
attach-lldb:
lldb $(EXE_PATH) -p $(PID)
attach-gdb:
gdb $(EXE_PATH) -p $(PID)
attach-ddd:
ddd $(EXE_PATH) -p $(PID)
attach-strace:
strace -f $(EXE_PATH) -p $(PID)
report:
generate-coredump-report.sh -l
mkdir -p crashes
if ls *core*.txt.bz2* >/dev/null 2>&1; then mv *core*.txt.bz2 crashes/; fi
view-report:
less `ls -rt crashes/*core*.txt.bz2 | tail -1`
localcore:
echo core.%h.%e.%p | sudo tee /proc/sys/kernel/core_pattern
cp `ls -rt /var/cores/*core* 2>/dev/null | tail -1` .
centralcore:
echo /var/cores/core.%h.%e.%p | sudo tee /proc/sys/kernel/core_pattern
coreclean: centralcore-clean
centralcore-clean:
$(RM) -f /var/cores/core* /var/cores/vgcore* || exit 0
echo-pid:
@echo PID = $(PID)

View file

@ -1,19 +0,0 @@
all:
DC_EXT ?= xz bzip2 gz zip
DC_COMPRESSED_ALL ?= $(foreach ext,$(DC_EXT),$(wildcard *.$(ext)))
DC_UNCOMPRESSED_ALL ?= $(foreach patt,$(DC_EXT),$(patsubst %.$(patt),%,$(wildcard *.$(patt))))
all: $(DC_UNCOMPRESSED_ALL)
clean: clean.uncompressed
clean.uncompressed:
rm -f $(DC_UNCOMPRESSED_ALL)
%: %.xz
xz -dk $<
%: %.gz
gunzip -k $<
%: %.bzip2
bunzip -k $<
%: %.zip
unzip $<

View file

@ -1,808 +0,0 @@
ifndef JW_BUILD_CPP_DEFS_MK_INCLUDED
JW_BUILD_CPP_DEFS_MK_INCLUDED := true
# performance optimization for clean targets
ifeq ($(filter clean distclean,$(MAKECMDGOALS)),)
# -- default choices
#COMPILER_SUITE ?= clang
COMPILER_SUITE ?= gcc
CPP_STANDARD_VERSION ?= 17
C_STANDARD_VERSION ?= 11
USE_PROJECT_LIB ?= true
EXPORT_PROJECT_LIB ?= $(USE_PROJECT_LIB)
USE_JW_BUILD ?= true
USE_EXCEPTIONS_IN_C ?= true
USE_COMPILER_OPTIMIZATION_OPTS ?= false
USE_COMPILER_DEBUG_OPTS ?= true
USE_VERSION_MACROS ?= true
COMPILE_DEBUG_CODE ?= true
ifeq ($(findstring $(TARGET_OS),linux),)
USE_SYSTEMD := false
endif
ifeq ($(USE_CCACHE),true)
CCACHE := ccache$(space)
endif
# -- build TAGGED_TMPL_TAGS cascade
TAGGED_TMPL_MAKEFILES = $(wildcard $(addsuffix .mk,$(foreach t,$(TAGGED_TMPL_DIRS),$(addprefix $(t)/,$(TAGGED_TMPL_TAGS)))))
# TODO: maybe push this whome MCU-specific stuff somewhere else
ifneq ($(findstring st-nucleo-f103rb,$(TAGGED_TMPL_TAGS)),)
TAGGED_TMPL_TAGS += cortex-m3
MCU_BOARD_MODEL ?= ST-NUCLEO-F103RB
FINAL_CPPFLAGS += -DST_NUCLEO_F103RB
MCU_FLASH_OFFSET ?= 0x0000000
MCU_FLASH_SIZE ?= 0x5000
MCU_MEM_FETCH_OFFSET ?= 0x08000000
MCU_MEM_FETCH_SIZE ?= $(MCU_FLASH_SIZE)
#MCU_OPENOCD_CFG_NAME ?= openocd-$(MCU_BOARD_LC).cfg
ifneq ($(findstring j-link,$(TAGGED_TMPL_TAGS)),)
MCU_OPENOCD_CFG_NAME ?= openocd-st-nucleo-f103rb-jlink.cfg
else
MCU_OPENOCD_CFG_NAME ?= openocd-st-nucleo-f103rb.cfg
endif
MODM_BSPS += modm:nucleo-f103rb
MCU_FLASH_BANK_NAME ?= internal
ifneq ($(MCU_FLASH_BANK_NAME),internal)
$(error Unsupported flash bank name "$(MCU_FLASH_BANK_NAME)")
endif
else ifneq ($(findstring st-disc1-f429i,$(TAGGED_TMPL_TAGS)),)
TAGGED_TMPL_TAGS += cortex-m4
MCU_BOARD_MODEL ?= ST-DISC1-F429I
FINAL_CPPFLAGS += -DST_DISC1_F429I
#MCU_OPENOCD_CFG_NAME ?= openocd-st-stm32f429disc1.cfg
MCU_OPENOCD_CFG_NAME ?= openocd-st-stm32f429discovery.cfg
MCU_FLASH_BANK_NAME ?= internal
ifeq ($(MCU_FLASH_BANK_NAME),internal)
MCU_FLASH_OFFSET ?= 0x00000000
MCU_FLASH_SIZE ?= 0x00200000
MCU_MEM_FETCH_OFFSET ?= 0x08000000
MCU_MEM_FETCH_SIZE ?= $(MCU_FLASH_SIZE)
else ifeq ($(MCU_FLASH_BANK_NAME),otp)
MCU_FLASH_OFFSET ?= 0x00000000
MCU_FLASH_SIZE ?= 0x00000200
MCU_MEM_FETCH_OFFSET ?= 0x1fff7800
MCU_MEM_FETCH_SIZE ?= $(MCU_FLASH_SIZE)
else
$(error Unsupported flash bank name "$(MCU_FLASH_BANK_NAME)")
endif
ifeq ($(MCU_OPENOCD_CFG_NAME),openocd-st-stm32f429disc1.cfg)
ifeq ($(MCU_FLASH_BANK_NAME),internal)
MCU_FLASH_BANK ?= 1
endif
else ifeq ($(MCU_OPENOCD_CFG_NAME),openocd-st-stm32f429discovery.cfg)
ifeq ($(MCU_FLASH_BANK_NAME),internal)
MCU_FLASH_BANK ?= 1
endif
endif
# modm:disco-f769ni (SIC), not disco-f769i. mbed does the same, despite the
# fact that a board of this name doesn't exist.
MODM_BSPS += modm:disco-f429zi
else ifneq ($(findstring st-disco-f769i,$(TAGGED_TMPL_TAGS)),)
TAGGED_TMPL_TAGS += cortex-m7
MCU_BOARD_MODEL ?= ST-DISCO-F769I
FINAL_CPPFLAGS += -DST_DISCO_F769I
ifneq ($(findstring j-link,$(TAGGED_TMPL_TAGS)),)
MCU_OPENOCD_CFG_NAME ?= openocd-stmqspi-st-stm32f769i-disco-jlink.cfg
else
MCU_OPENOCD_CFG_NAME ?= openocd-stmqspi-st-stm32f769i-disco.cfg
endif
MCU_FLASH_BANK_NAME ?= external
ifeq ($(MCU_FLASH_BANK_NAME),external)
MCU_FLASH_OFFSET ?= 0x00000000
MCU_FLASH_SIZE ?= 0x04000000
MCU_MEM_FETCH_OFFSET ?= 0x90000000
MCU_MEM_FETCH_SIZE ?= $(MCU_FLASH_SIZE)
else ifeq ($(MCU_FLASH_BANK_NAME),internal)
MCU_FLASH_OFFSET ?= 0x00000000
MCU_FLASH_SIZE ?= 0x00200000
MCU_MEM_FETCH_OFFSET ?= 0x08000000
MCU_MEM_FETCH_SIZE ?= $(MCU_FLASH_SIZE)
else
$(error Unsupported flash bank name "$(MCU_FLASH_BANK_NAME)")
endif
ifeq ($(MCU_OPENOCD_CFG_NAME),openocd-stmqspi-st-stm32f769i-disco.cfg)
ifeq ($(MCU_FLASH_BANK_NAME),external)
MCU_FLASH_BANK ?= 1
else ifeq ($(MCU_FLASH_BANK_NAME),internal)
MCU_FLASH_BANK ?= 0
endif
else ifeq ($(MCU_OPENOCD_CFG_NAME),openocd-st-stm32f7discovery.cfg)
ifeq ($(MCU_FLASH_BANK_NAME),external)
MCU_FLASH_BANK ?= 2
endif
endif
# modm:disco-f769ni (SIC), not disco-f769i. mbed does the same, despite the
# fact that a board of this name doesn't exist.
MODM_BSPS += modm:disco-f769ni
else
MCU_OPENOCD_CFG_NAME ?= openocd-$(MCU_BOARD_LC).cfg
endif
ifneq ($(findstring cortex-m,$(TAGGED_TMPL_TAGS)),)
TAGGED_TMPL_TAGS += cortex-m
ifneq ($(findstring cortex-m3,$(TAGGED_TMPL_TAGS)),)
TARGET_CPU = cortex-m3
else ifneq ($(findstring cortex-m4,$(TAGGED_TMPL_TAGS)),)
TARGET_CPU = cortex-m4
else ifneq ($(findstring cortex-m7,$(TAGGED_TMPL_TAGS)),)
TARGET_CPU = cortex-m7
endif
endif
ifneq ($(findstring cortex,$(TAGGED_TMPL_TAGS)),)
TAGGED_TMPL_TAGS += cortex
endif
# ----- tool chain
ifneq ($(TARGET_TRIPLET),$(HOST_TRIPLET)) # we're cross-compiling
TC_BIN_PREFIX ?= $(TARGET_TRIPLET)-
TC_SYS_ROOT ?= /usr/$(TARGET_TRIPLET)
ifeq ($(TARGET),mingw)
ifneq ($(wildcard $(TC_BIN_PREFIX)gcc),)
CROSS_TOOL_DIR ?=
TC_SYS_ROOT ?= /usr/$(TARGET_TRIPLET)/sys-root/mingw
else
CROSS_TOOL_DIR ?= /opt/cross-tools
TC_BIN_PREFIX ?= $(CROSS_TOOL_DIR)/bin/i686-pc-mingw32-
endif
FINAL_CPPFLAGS += -D_WINDOWS
FINAL_LDFLAGS += -lws2_32
WINDRES ?= $(TC_BIN_PREFIX)windres
USE_GFILTER ?= false
MS_LD ?= wine $(HOME)/local/mingw/packages/msvcpp/bin/LIB.EXE
endif
#FINAL_CPPFLAGS += -I$(TC_SYS_ROOT)/include
#FINAL_LDFLAGS += -L$(TC_SYS_ROOT)/lib
else # we're not cross-compiling
TC_SYS_ROOT ?= /usr
FINAL_LIBFLAGS += -pthread
endif
ifeq ($(COMPILER_SUITE),gcc)
GCC ?= $(CCACHE)$(TC_BIN_PREFIX)gcc
GXX ?= $(CCACHE)$(TC_BIN_PREFIX)g++
GNU_LD ?= $(TC_BIN_PREFIX)ld
CLANG ?= $(CCACHE)$(TC_BIN_PREFIX)clang
CLANGPP ?= $(CCACHE)$(TC_BIN_PREFIX)clang++
STRIP ?= $(TC_BIN_PREFIX)strip
RANLIB ?= $(TC_BIN_PREFIX)ranlib
AR ?= $(TC_BIN_PREFIX)ar
PKG_CONFIG_EXE ?= $(TC_BIN_PREFIX)pkg-config
CPP_FILT ?= $(TC_BIN_PREFIX)c++filt
OBJCOPY ?= $(TC_BIN_PREFIX)objcopy
OBJDUMP ?= $(TC_BIN_PREFIX)objdump
# compiler and linker
# gcc
GCC_VERSION := $(shell $(GCC) -v 2>&1 | $(SED) '/gcc.version/I !d; s/.*version *//I; s/ \+.*//')
GCC_VERSION_NUMBERS := $(subst ., ,$(GCC_VERSION))
GCC_MAJOR := $(word 1,$(GCC_VERSION_NUMBERS))
GCC_MINOR := $(word 2,$(GCC_VERSION_NUMBERS))
GCC_REV := $(word 3,$(GCC_VERSION_NUMBERS))
# Not needed anywhere
#GNU_LD_VERSION := $(shell $(LD) -V | $(SED) '/GNU ld/ !d; s/(.*)//; s/[^0-9.-]*//')
#GNU_LD_VERSION_NUMBERS := $(subst ., ,$(GNU_LD_VERSION))
#GNU_LD_MAJOR := $(word 1,$(GNU_LD_VERSION_NUMBERS))
#GNU_LD_MINOR := $(word 2,$(GNU_LD_VERSION_NUMBERS))
#GNU_LD_REV := $(word 3,$(GNU_LD_VERSION_NUMBERS))
CC = $(GCC)
CXX = $(GXX)
LD = $(GXX)
FINAL_CXXFLAGS += -std=c++$(CPP_STANDARD_VERSION)
FINAL_CFLAGS += -std=gnu$(C_STANDARD_VERSION)
ifeq ($(shell $(TEST) $(GCC_MAJOR) -ge 5; $(ECHO) $$?),0)
ifeq ($(USE_CPP_FORCE_OVERRIDE),true)
GCC_CXXFLAGS += -Werror=suggest-override
endif
endif
ifeq ($(GCC_MAJOR),2)
FINAL_LPPFLAGS += -lm
FINAL_CPPFLAGS += -I/usr/local/include
else ifeq ($(GCC_MAJOR),3)
ifeq ($(GCC_MINOR),3)
FINAL_LPPFLAGS += -lgcc_s
# FINAL_LPPFLAGS += -L/usr/local/gcc3.3/lib
endif
else
FINAL_CPPFLAGS += -DGCC_HASCLASSVISIBILITY
endif
else ifeq ($(COMPILER_SUITE),clang)
# clang
CLANG_CXXFLAGS += -Wno-unused-private-field -Wno-self-assign-field -Wno-overloaded-virtual
CC = $(CLANG)
CXX = $(CLANGPP)
LD = $(CLANGPP)
ifeq ($(USE_CPP_WARN_INCONSISTENT_OVERRIDE),true)
CLANG_CXXFLAGS += -Winconsistent-missing-override
endif
endif # COMPILER_SUITE
# -- jw-build variables based on arch and toolchain
ifeq ($(TARGET_TRIPLET),arm-none-eabi)
LIBTYPE ?= static
else
LIBTYPE ?= shared
endif
INTEL_ARCHS := i386 i486 i586 i686 x86_64
ifneq ($(findstring $(TARGET_ARCH),$(INTEL_ARCHS)),)
TAGGED_TMPL_TAGS += x86
endif
ifeq ($(COMPILER_SUITE),gcc)
DEBUGGER ?= gdb
FINAL_EXTRA_DEBUG_FLAGS += -ggdb
else ifeq ($(COMPILER_SUITE),clang)
DEBUGGER = lldb
endif
# -- gather compiler options in BUILD_XXXFLAGS
FINAL_CFLAGS += $(CFLAGS)
FINAL_CXXFLAGS += $(CXXFLAGS)
FINAL_CPPFLAGS += $(CPPFLAGS)
FINAL_LDFLAGS += $(LDFLAGS)
FINAL_CPPFLAGS += -D_FILE_OFFSET_BITS=64 -Wall -Wno-unused-value -Wno-deprecated -DPROJECT_STR=\"$(PROJECT)\"
FINAL_LDFLAGS += -Wall
ifeq ($(TARGET_ARCH),$(ARCH_32))
FINAL_CPPFLAGS += -m32
FINAL_LDFLAGS += -m32
endif
ifneq ($(findstring $(TARGET_ARCH),$(INTEL_ARCHS)),)
FINAL_CPPFLAGS += -fPIC
ifeq ($(findstring mingw,$(TARGET_ABI)),)
ifeq ($(LIBTYPE),shared)
FINAL_LIBFLAGS += -ldl
else
FINAL_LIBFLAGS += -l:libdl.a
endif
endif
endif
ifeq ($(TARGET_ARCH),armv7hl)
FINAL_CPPFLAGS += -fPIC
else ifeq ($(TARGET_ARCH),aarch64)
FINAL_CPPFLAGS += -fPIC
endif
ifeq ($(DEVELOPMENT),true)
FINAL_CPPFLAGS += -D_DEVELOPMENT_
export G_SLICE = always-malloc
export G_DEBUG = gc-friendly,resident-modules
export MALLOC_CHECK_ = 2
endif
ifneq ($(LOG_QUAL_PREFIX),)
FINAL_CPPFLAGS += -DKEEP_FILES_OPEN -DLOG_QUAL_PREFIX=\"$(LOG_QUAL_PREFIX)\"
endif
ifeq ($(CATCH_ONLY_YERROR),true)
FINAL_CPPFLAGS += -DCATCH_ONLY_YERROR
endif
ifeq ($(USE_VERSION_MACROS),true)
FINAL_CPPFLAGS += -DVERSION=$(HEX_VERSION) -DVERSION_STR=\"$(VERSION)\"
endif
ifeq ($(TARGET_TRIPLET),arm-none-eabi)
ifeq ($(TARGET_CPU),cortex-m3)
FINAL_CPPFLAGS += -mcpu=cortex-m3 -mthumb
FINAL_LDFLAGS += -mcpu=cortex-m3 -mthumb
else ifeq ($(TARGET_CPU),cortex-m4)
FINAL_CPPFLAGS += -mcpu=cortex-m4 -mthumb
FINAL_LDFLAGS += -mcpu=cortex-m4 -mthumb
else ifeq ($(TARGET_CPU),cortex-m7)
FINAL_CPPFLAGS += -mcpu=cortex-m7 -mthumb
FINAL_LDFLAGS += -mcpu=cortex-m7 -mthumb
endif
ifneq ($(findstring cortex-m,$(TARGET_CPU)),)
# don't wrap error message lines
#FINAL_LDFLAGS += -fmessage-length=0
# don't know what kind of optimization that is
#FINAL_LDFLAGS += -Og
# stick with what janware code tends to expect
FINAL_LDFLAGS += -fsigned-char
# I have no clue which part would evaluate these names
FINAL_LDFLAGS += -ffunction-sections
FINAL_LDFLAGS += -fdata-sections
FINAL_LDFLAGS += -ffreestanding
FINAL_LDFLAGS += -fno-move-loop-invariants
# skip any automatic initialization
FINAL_LDFLAGS += -nostartfiles
# garbage collect unused input sections
FINAL_LDFLAGS += -Xlinker --gc-sections
#FINAL_LDFLAGS += -Xlinker --print-gc-sections
# create map file
FINAL_LDFLAGS += -Wl,-Map,"$(EXE_MAP)"
# use newlib-nano, provides symbols _write _close _fstat _isatty _lseek (at least)
# (TODO: No -Wl necessary?)
FINAL_LDFLAGS += --specs=nano.specs
FINAL_LDFLAGS += --specs=nosys.specs
endif
USE_DISABLE_COMPILER_OPTIMISATION_OPTS = false
USE_EXCEPTIONS_IN_C = false
ARM_NONE_EABI_ALLFLAGS += -fno-exceptions
ifeq ($(USE_DISABLE_COMPILER_OPTIMISATION_OPTS),true)
ARM_NONE_EABI_ALLFLAGS += -Os
endif
FINAL_LDFLAGS += $(ARM_NONE_EABI_ALLFLAGS)
FINAL_CPPFLAGS += $(ARM_NONE_EABI_ALLFLAGS)
FINAL_CXXFLAGS += -fno-rtti
# -- used by modm, but currently disabled for test purposes
#FINAL_CFLAGS += -fno-threadsafe-statics
#FINAL_CFLAGS += -fno-unwind-tables
#FINAL_CFLAGS += -fstrict-enums
#FINAL_CFLAGS += -fuse-cxa-atexit
#FINAL_CFLAGS += -fshort-wchar
#FINAL_CFLAGS += -fsingle-precision-constant
#FINAL_CFLAGS += -funsigned-bitfields
#FINAL_CFLAGS += -funsigned-char
#FINAL_CFLAGS += -fwrapv
#FINAL_CFLAGS += -g3
#FINAL_CFLAGS += -gdwarf
#FINAL_CFLAGS += -W
#FINAL_CFLAGS += -Wall
#FINAL_CFLAGS += -Wdouble-promotion
#FINAL_CFLAGS += -Wduplicated-cond
#FINAL_CFLAGS += -Werror=format
#FINAL_CFLAGS += -Werror=maybe-uninitialized
#FINAL_CFLAGS += -Werror=overflow
#FINAL_CFLAGS += -Werror=sign-compare
#FINAL_CFLAGS += -Wextra
#FINAL_CFLAGS += -Wlogical-op
#FINAL_CFLAGS += -Wpointer-arith
#FINAL_CFLAGS += -Wundef
#FINAL_CXXFLAGS += -fdata-sections
#FINAL_CXXFLAGS += -ffunction-sections
#FINAL_CXXFLAGS += -finline-limit=10000
#FINAL_CPPFLAGS += -fshort-wchar
#FINAL_CPPFLAGS += -fsingle-precision-constant
#FINAL_CPPFLAGS += -funsigned-bitfields
#FINAL_CPPFLAGS += -funsigned-char
#FINAL_CPPFLAGS += -fwrapv
#FINAL_CPPFLAGS += -g3
#FINAL_CPPFLAGS += -gdwarf
#FINAL_CPPFLAGS += -W
#FINAL_CPPFLAGS += -Wall
#FINAL_CPPFLAGS += -Wdouble-promotion
#FINAL_CPPFLAGS += -Wduplicated-cond
#FINAL_CPPFLAGS += -Werror=format
#FINAL_CPPFLAGS += -Werror=maybe-uninitialized
#FINAL_CPPFLAGS += -Werror=overflow
#FINAL_CPPFLAGS += -Werror=sign-compare
#FINAL_CPPFLAGS += -Wextra
#FINAL_CPPFLAGS += -Wlogical-op
#FINAL_CXXFLAGS += -Wpointer-arith
#FINAL_CPPFLAGS += -Wundef
#FINAL_CXXFLAGS += -fno-threadsafe-statics
#FINAL_CPPFLAGS += -fno-unwind-tables
#FINAL_CXXFLAGS += -fstrict-enums
#FINAL_CPPFLAGS += -fuse-cxa-atexit
#FINAL_CXXFLAGS += -std=c++17
#FINAL_CXXFLAGS += -Woverloaded-virtual
#FINAL_CXXFLAGS += -fno-move-loop-invariants
#FINAL_CPPFLAGS += -fno-split-wide-types
#FINAL_CPPFLAGS += -fno-tree-loop-optimize
#FINAL_CPPFLAGS += -fno-exceptions
#FINAL_CXXFLAGS += -fno-rtti
ifneq ($(findstring gnu-mcu-eclipse,$(TAGGED_TMPL_TAGS)),)
LD_DEFINE_SYMBOLS += _sbrk
endif
endif
FINAL_LDFLAGS += $(addprefix -u ,$(LD_DEFINE_SYMBOLS))
# -- target files and dirs
SRC_SUFFIX += $(sort $(suffix $(wildcard $(TOPDIR)/hdr/*)))
LOCAL_SRC += Makefile $(wildcard $(addprefix *,$(SRC_SUFFIX)))
SRC_HEADERED += $(shell if [ "$(LOCAL_SRC)" ]; then grep -ic "it services" $(LOCAL_SRC) | $(SED) '/:0$$/ d; s/:.*$$//'; fi)
SRC_UNHEADERED += $(filter-out $(SRC_HEADERED),$(LOCAL_SRC))
LOCAL_C ?= $(wildcard *.c)
LOCAL_CPP ?= $(wildcard *.cc *.cpp *.C)
LOCAL_H ?= $(wildcard *.h *.H *.hpp *.hh)
SFILES ?= $(wildcard *.S *.sx)
#PREREQ_H += $(foreach dir,$(PREREQ_DIR),$(wildcard $(dir)/*.h))
ALL_H += $(LOCAL_H) $(PREREQ_H)
SRC_ALL_CPP += $(filter-out $(SRC_ALL_CPP_IGNORE),$(LOCAL_C) $(LOCAL_CPP) $(LOCAL_H))
SRC_C += $(filter %.c, $(SRC_ALL_CPP))
SRC_CPP += $(filter %.cc %.cpp %.C, $(SRC_ALL_CPP))
BUILD_OBJ += $(addprefix $(FLAVOUR_PREFIX),$(patsubst %.C,%.o,$(patsubst %.cpp,%.o,$(patsubst %.cc,%.o,$(patsubst %.c,%.o,$(filter %.c %.cpp %.cc %.C, $(SRC_ALL_CPP)))))))
BUILD_OBJ += $(addprefix $(FLAVOUR_PREFIX),$(patsubst %.sx,%.o,$(patsubst %.S,%.o,$(SFILES))))
#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)
REQUIRED_DIR += $(patsubst %,$(JWBDIR)/%,$(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_C += $(LOCAL_C) $(PREREQ_CPP)
ALL_CPP += $(LOCAL_CPP) $(PREREQ_CPP)
ALL_CSRC += $(LOCAL_CSRC) $(PREREQ_CSRC)
ifeq ($(USE_QT),true)
include $(JWBDIR)/make/qtversion.mk
include $(JWBDIR)/make/qt-defs.mk
endif
ifeq ($(USE_X),true)
FINAL_LDFLAGS += -L/usr/X11/$(SYSTEM_LIBDIR_NAME) -lXext -lX11
endif
ifneq ($(TARGET_TRIPLET),arm-none-eabi)
FINAL_LPPFLAGS += -lstdc++
endif
ifeq ($(TARGET),mingw)
FINAL_CPPFLAGS += -DWIN32
# see https://stackoverflow.com/questions/4492799
FINAL_LDFLAGS += -fstack-protector
endif
ifeq ($(LOG_THREAD_NAMES), true)
FINAL_CPPFLAGS += -DSLOG_THREAD_NAMES
endif
# ----- standard features, switched on with USE_XXX = true
#include $(JWBDIR)/make/lib-deps.mk
ifeq ($(USE_GFILTER),true)
GFILT = sh $(firstword $(wildcard $(JWBDIR)/contrib/gfilt/gfilt $(JWBDIR)/bin/gfilt))
ifneq ($(strip $(GFILT)),sh)
GXX = $(GFILT)
endif
endif
ifeq ($(USE_PROJECT_LIB),true)
PROJECTLIB_LDFLAGS += -L$(TOPDIR)/lib -l$(LIBNAME)
endif
ifneq ($(filter jw-build,$(PREREQ_BUILD)),)
ifeq ($(TARGET),mingw)
JW_FINAL_LDFLAGS += -lglib-2.0 -lws2_32 -lstdc++
endif
endif
ifeq ($(USE_SYSTEMD),true)
FINAL_CPPFLAGS += -D_USE_SYSTEMD_ $(shell $(PKG_CONFIG_EXE) --cflags libsystemd)
FINAL_LDFLAGS += $(shell $(PKG_CONFIG_EXE) --libs libsystemd)
endif
ifeq ($(USE_TIMER),true)
FINAL_CPPFLAGS += -D_USE_TIMER_
endif
ifeq ($(USE_FAST_LOG),false)
FINAL_CPPFLAGS += -D_USE_FAST_LOG_=0
endif
ifeq ($(USE_YAMD),true)
CC = yamd-gcc
endif
ifeq ($(USE_MPATROL),true)
#FINAL_CPPFLAGS += -include /usr/include/mpatrol.h
FINAL_LDFLAGS += -lmpatrolmt -lbfd -liberty
endif
ifeq ($(USE_VALGRIND),true)
FINAL_CPPFLAGS += -include /usr/include/valgrind/memcheck.h -D_VALGRIND_
# FINAL_LDFLAGS +=
endif
ifeq ($(USE_MCHECK),true)
FINAL_LDFLAGS += -lmcheck
endif
ifeq ($(USE_STACK_PROTECTOR),true)
FINAL_CPPFLAGS += -fstack-protector-all
#FINAL_CPPFLAGS += -fstack-protector
endif
ifeq ($(USE_STACK_CHECKER),true)
ifeq "$(COMPILER_SUITE)" "clang"
FINAL_CPPFLAGS += -fsanitize=address -fno-omit-frame-pointer
FINAL_LDFLAGS += -fsanitize=address
endif
endif
ifeq ($(USE_DBMALLOC),true)
CONTRIB_LIBS += dbmalloc
FINAL_CPPFLAGS += -DDBMALLOC -DEXITFUN=_exit -I$(TOPDIR)/contrib/dbmalloc
FINAL_LDFLAGS += -ldbmalloc
endif
ifeq ($(USE_DMALLOC),true)
FINAL_CPPFLAGS += -DDMALLOC -DDMALLOC_FUNC_CHECK -DSTORE_SEEN_COUNT
FINAL_LDFLAGS += -ldmallocthcxx -ldmallocth
endif
ifeq ($(USE_MEMWATCH),true)
FINAL_CPPFLAGS += -DMEMWATCH -DMW_STDIO
endif
ifeq ($(USE_EFENCE),true)
FINAL_CPPFLAGS += -DEFENCE
FINAL_LDFLAGS += -lefence
endif
ifeq ($(USE_TRACING),true)
FINAL_CPPFLAGS += -D_DO_TRACE_
endif
ifeq ($(USE_ASSERTIONS),false)
FINAL_CPPFLAGS += -DNDEBUG
endif
ifeq ($(COMPILE_DEBUG_CODE),true)
FINAL_CPPFLAGS += -D_DEBUG_
endif
ifeq ($(COMPILE_DEBUG_LOG),true)
FINAL_CPPFLAGS += -D_LOG_DEBUG_
endif
ifeq ($(USE_MPATROL),true)
FINAL_CPPFLAGS += -include $(JWBDIR)/include/mpatrol.h
FINAL_LDFLAGS += -lmpatrolmt -lbfd -liberty
endif
ifeq ($(BREAK_ABI),true)
FINAL_CPPFLAGS += -D_BREAK_ABI_
endif
ifeq ($(USE_STACK_CHECK),true)
FINAL_CPPFLAGS += -fstack-check
endif
ifeq ($(USE_COMPILER_DEBUG_OPTS),true)
#FINAL_EXTRA_DEBUG_FLAGS += -gdwarf-2
FINAL_CPPFLAGS += -g3 $(FINAL_EXTRA_DEBUG_FLAGS)
FINAL_LDFLAGS += -g3 $(FINAL_EXTRA_DEBUG_FLAGS)
ifneq ($(USE_COMPILER_OPTIMIZATION_OPTS),true)
FINAL_CPPFLAGS += -Og
FINAL_LDFLAGS += -Og
endif
endif
ifeq ($(CC),$(GCC))
GCC_NO_OPT_FLAGS = \
-fno-inline-functions-called-once \
-fno-tree-loop-optimize \
-fno-early-inlining \
-fno-default-inline
else ifeq ($(CC),$(CLANG))
FINAL_CPPFLAGS += -Werror
endif
ifeq ($(USE_COMPILER_OPTIMIZATION_OPTS),true)
FINAL_CPPFLAGS += -funroll-loops -O3
else ifeq ($(USE_DISABLE_COMPILER_OPTIMISATION_OPTS),true)
NO_OPT_FLAGS = \
-O0 -g -fno-inline -fno-omit-frame-pointer \
-fno-optimize-sibling-calls \
$(GCC_NO_OPT_FLAGS)
# -fconserve-stack
# breaks constexpr
#NO_OPT_FLAGS += -fno-builtin
_NO_OPT_FLAGS = \
-O0 \
-fno-implicit-inline-templates \
-fno-implement-inlines \
-fno-default-inline \
-fno-inline \
-finline-limit=0 \
-fkeep-inline-functions \
-fno-inline-functions \
$(GCC_NO_OPT_FLAGS)
FINAL_CPPFLAGS += $(NO_OPT_FLAGS)
FINAL_LDFLAGS += $(NO_OPT_FLAGS)
endif
ifeq ($(USE_EXCEPTIONS_IN_C),true)
FINAL_CFLAGS += -fexceptions
ifeq ($(LIBTYPE),shared)
GCC_LDFLAGS += -shared-libgcc
endif
endif
ifeq ($(STRIP_SYMBOLS),true)
STRIP_DONE ?= strip.done
endif
FINAL_INCLUDE += $(LOCAL_INCLUDE)
# force use of double quotes, allow header namespaces
ifeq ($(HDRDIR_SCOPE_SUFFIX),)
FINAL_INCLUDE += -I.
else
FINAL_INCLUDE += -iquote .
endif
ifeq ($(USE_PROJECT_LIB),true)
FINAL_INCLUDE += $(PROJECT_INCLUDE) -I$(TOPDIR)/include
FINAL_LIBFLAGS += -L$(BUILD_LIBDIR)
endif
FINAL_INCLUDE += $(call proj_query, cflags $(PREREQ_BUILD) $(PROJECT))
LDFLAGS_QUERY_ARGS = $(addprefix --exclude ,$(LDFLAGS_EXCLUDE))
FINAL_LIBFLAGS += $(call proj_query, ldflags $(LDFLAGS_QUERY_ARGS) --add-self $(PREREQ_BUILD))
# the following is necessary, because not all projects have build.libname = none in project.conf
ifeq ($(USE_PROJECT_LIB),true)
LDFLAGS_QUERY_ARGS_SELF = --add-self
endif
FINAL_LIBFLAGS += $(call proj_query, ldflags $(LDFLAGS_QUERY_ARGS) $(LDFLAGS_QUERY_ARGS_SELF) $(PROJECT))
ifeq ($(USE_SNDFILE),true)
FINAL_LIBFLAGS += -lsndfile
endif
ifeq ($(USE_FFTW),true)
FINAL_LIBFLAGS += -lfftw3
endif
ifeq ($(USE_GLIB),true)
FINAL_CPPFLAGS += $(shell $(PKG_CONFIG_EXE) --cflags glib-2.0)
FINAL_LIBFLAGS += $(shell $(PKG_CONFIG_EXE) --libs glib-2.0)
endif
ifeq ($(CC),$(CLANG))
COMPILER_CFLAGS += $(CLANG_CFLAGS)
COMPILER_CPPFLAGS += $(CLANG_CPPFLAGS)
COMPILER_CXXFLAGS += $(CLANG_CXXFLAGS)
COMPILER_LDFLAGS += $(CLANG_LDFLAGS)
endif
ifeq ($(CC),$(GCC))
COMPILER_CFLAGS += $(GCC_CFLAGS)
COMPILER_CPPFLAGS += $(GCC_CPPFLAGS)
COMPILER_CXXFLAGS += $(GCC_CXXFLAGS)
COMPILER_LDFLAGS += $(GCC_LDFLAGS)
endif
FINAL_CFLAGS += $(LOCAL_CFLAGS) $(PROJECT_CFLAGS) $(COMPLILER_CFLAGS) $(FINAL_INCLUDE)
FINAL_CPPFLAGS += $(LOCAL_CPPFLAGS) $(PROJECT_INCLUDE) $(PROJECT_CPPFLAGS) $(COMPILER_CPPFLAGS) $(FINAL_INCLUDE)
FINAL_CXXFLAGS += $(LOCAL_CXXFLAGS) $(PROJECT_CXXFLAGS) $(COMPILER_CXXFLAGS) $(FINAL_INCLUDE)
FINAL_LDFLAGS += $(LOCAL_LDFLAGS) $(PROJECTLIB_LDFLAGS) $(PROJECT_LDFLAGS) $(COMPILER_LDFLAGS) $(FINAL_LPPFLAGS) $(FINAL_LIBFLAGS)
#RPM_REQUIRES = $(shell $(ECHO) "$(RPM_REQUIRES_RUN) $(RPM_REQUIRES_DEVEL)" | $(add_flavour_prefix))
RPM_REQUIRES += $(RPM_REQUIRES_RUN) $(RPM_REQUIRES_DEVEL)
REAL_CFLAGS ?= $(FINAL_CFLAGS)
REAL_CPPFLAGS ?= $(FINAL_CPPFLAGS)
REAL_CXXFLAGS ?= $(FINAL_CXXFLAGS)
REAL_LDFLAGS ?= $(FINAL_LDFLAGS)
# -- LIB
INSTALLATION_FILE_TYPES += LIB
#BUILD_PIDIR = $(BUILD_LIBDIR)
#BUILD_PI = $(addprefix $(BUILD_PIDIR)/,$(PLUGIN))
#INSTALL_PIDIR = $(INSTALL_LIBDIR)
#INSTALLED_PI = $(addprefix $(INSTALL_PIDIR)/,$(PLUGIN))
BUILD_LIBDIR ?= $(TOPDIR)/lib
LOCAL_LIBS += $(CONTRIB_LIBS) $(PLUGIN)
ifeq ($(TARGET),mingw)
ifeq ($(TC_SYS_ROOT),)
CONTRIB_LIBS_PATH += $(CROSS_TOOL_DIR)/bin
else
CONTRIB_LIBS_PATH += $(TC_SYS_ROOT)/lib
endif
endif
INSTALL_LIBDIR ?= $(EXE_PREFIX)/lib
ifeq ($(LIBTYPE),shared)
ifneq ($(TARGET),mingw)
FINAL_LDFLAGS += -rdynamic
endif
else
LIB_SO ?=
FINAL_LDFLAGS += -static
endif
ifeq ($(USE_PROJECT_LIB),true)
LIBNAME ?= $(PROJECT)
MEMBERS += $(LIB_A)($(BUILD_OBJ))
VERSION_SCRIPT = $(BUILD_LIBDIR)/version.ldscript
# TODO: use something like this as unifying variable, there are far too many
# lib-related variables
LOCAL_LIBS +=
ifneq ($(TARGET),mingw)
LIB_A ?= $(BUILD_LIBDIR)/lib$(LIBNAME).a
SO_SUFFIX ?= so.$(MAJOR_MINOR_RELEASE)
SO_PREFIX ?= lib
LIB_SO ?= $(BUILD_LIBDIR)/lib$(LIBNAME).$(SO_SUFFIX)
LINKS_SO += $(filter-out $(LIB_SO),$(shell $(ECHO) $(LIB_SO) | $(SED) -e "s/\.so\..*$$/.so/"))
INSTALLED_LINKS_SO += $(filter-out $(INSTALLED_LIB_SO),$(shell $(ECHO) $(INSTALLED_LIB_SO) | $(SED) -e "s/\.so\..*$$/.so/"))
INSTALLED_LIB_A = $(INSTALL_LIBDIR)/lib$(LIBNAME).a
else
LIB_A = $(BUILD_LIBDIR)/lib$(LIBNAME)-static.a
#WINRES_RC_TMPL = $(JWBDIR)/make/winres-minimal.rc.tmpl
WINRES_RC_TMPL = $(JWBDIR)/make/winres.rc.tmpl
WINRES_RC = $(BUILD_LIBDIR)/$(PROJECT).rc
WINRES_O = $(WINRES_RC).o
SO_SUFFIX ?= dll
SO_PREFIX ?=
LIB_DEF = $(BUILD_LIBDIR)/$(LIBNAME).def
MSVCPP_IMPLIB = $(BUILD_LIBDIR)/$(LIBNAME).lib
LIB_SO ?= $(BUILD_LIBDIR)/$(LIBNAME).dll
INSTALLED_LIB_A = $(INSTALL_LIBDIR)/lib$(LIBNAME).a
endif # mingw
BUILD_LIB += $(LIB_SO)
endif # USE_PROJECT_LIB
INSTALLED_LIB_SO = $(addprefix $(INSTALL_LIBDIR)/,$(notdir $(LIB_SO)))
INSTALLED_DEF = $(addprefix $(INSTALL_LIBDIR)/,$(wildcard *.lib *.exp))
INSTALLED_LIB += $(addprefix $(INSTALL_LIBDIR)/,$(LOCAL_LIBS))
BUILD_LIB += $(addprefix $(BUILD_LIBDIR)/,$(LOCAL_LIBS))
INSTALLED_ALL_LIBS = $(addprefix $(INSTALL_LIBDIR)/,$(wildcard *.a))
INSTALLED_LIB += $(INSTALLED_LIB_SO) $(INSTALLED_SHOBJS) \
$(INSTALLED_LINKS_SO) $(sort $(INSTALLED_LIB_A) $(INSTALLED_ALL_LIBS)) \
$(INSTALLED_DEF)
endif # ifeq ($(filter clean distclean,$(MAKECMDGOALS)),)
endif # ifndef JW_BUILD_CPP_DEFS_MK_INCLUDED

View file

@ -1,45 +0,0 @@
# variables
DEPEND_CFLAGS += -D__MAKEDEPEND__
DEPEND_CXXFLAGS += -D__MAKEDEPEND__
DEPEND_MK += $(addprefix .,$(addsuffix .dep.mk, $(BUILD_OBJ)))
ifeq ($(DEPEND_MK_INCLUDED),)
all:
clean: depclean
# convenience targets
dep: $(DEPEND_MK)
depclean:
$(RM) -f .*.dep.mk
$(DEPEND_MK): $(PREREQ_DONE)
ifneq ($(DEPEND_MK),)
ifeq ($(MAKECMDGOALS),)
-include $(DEPEND_MK)
endif
ifneq ($(filter all,$(MAKECMDGOALS)),)
-include $(DEPEND_MK)
endif
endif
%.o: .%.o.dep.mk
.%.o.dep.mk: %.cpp $(BUILD_HDR) $(SRC_H)
$(CC) -M $(FINAL_CXXFLAGS) $(FINAL_CPPFLAGS) $(DEPEND_CXXFLAGS) $< -o $@
.%.o.dep.mk: %.cc $(BUILD_HDR) $(SRC_H)
$(CC) -M $(FINAL_CXXFLAGS) $(FINAL_CPPFLAGS) $(DEPEND_CXXFLAGS) $< -o $@
.%.o.dep.mk: %.c $(BUILD_HDR) $(SRC_H)
$(CC) -M $(FINAL_CFLAGS) $(FINAL_CPPFLAGS) $(DEPEND_CXXFLAGS) $< -o $@
show-vars: show-vars-depend-mk
show-vars-depend-mk:
@echo DEPEND_MK = $(DEPEND_MK)
@echo BUILD_HDR = $(BUILD_HDR)
@echo SRC_H = $(SRC_H)
endif # DEPEND_MK_INCLUDED
DEPEND_MK_INCLUDED := true

View file

@ -1,7 +0,0 @@
DISABLED = @echo Target \"$1\" in $(shell pwd)/Makefile has been disabled.
all:
$(call DISABLED,$@)
install clean distclean:
$(call DISABLED,$@)

View file

@ -1,87 +0,0 @@
# -- general, and important
LOCAL_PROJECT = $(PROJECT)
TARGET_HOST = cvs.janware.com
UPLOAD_DOCUMENT_ROOT = /usr/local/httpd/htdocs
UPLOAD_VIRTUAL_SERVER_ROOT = www.jannet.de_443
TARGET_USER = root
TARGET_GROUP = root
TARGET_FILE_MODE = 755
TARGET_DIR_MODE = 755
DOWNLOAD_SERVER = https://www.jannet.de:443
URL_RELATIVE_PATH = $(CUSTOMER)/projects/$(LOCAL_PROJECT)/download
SSI_DOWNLOAD_TMPL = $(JWBDIR)/doctmpl/html/ssi/ssi_download.html.tmpl
DOWNLOAD_REFERRER_DIRS = $(addprefix $(UPLOAD_DOCUMENT_ROOT)/, \
$(UPLOAD_VIRTUAL_SERVER_ROOT)/$(URL_RELATIVE_PATH) \
)
# -- general, and less important
DISTDIR = $(TOPDIR)/dist
DIST_FILE = $(DISTDIR)/$(PROJECT)-$(VERSION).tar.gz
TMPHTML = $(DISTDIR)/html
DOWNLOAD_URLDIR = $(DOWNLOAD_SERVER)/$(URL_RELATIVE_PATH)
TARGET_DIR ?= $(UPLOAD_DOCUMENT_ROOT)/$(UPLOAD_VIRTUAL_SERVER_ROOT)/$(URL_RELATIVE_PATH)
SSI_PREFIX = $(TMPHTML)/ssi_download_
$(TMPHTML):
mkdir -p $(TMPHTML)
test -d $(TMPHTML) && $(RM) -rf $(TMPHTML)/*
$(SSI_PREFIX)%.html: $(TMPHTML) $(SSI_DOWNLOAD_TMPL)
STEM=`basename $*` ;\
DIR=`dirname $*` ;\
EXPLANATION="$(PROJECT_DESCR)";\
SIZE=`ls -l $(DIST_FILE) | awk '{print $$5}'`;\
FILENAME=`basename $(DIST_FILE)` ;\
URLDIR=`echo $(DOWNLOAD_URLDIR) | $(SED) -e 's/\\//\\\\\//g;'` ;\
$(CAT) $(SSI_DOWNLOAD_TMPL) | $(SED) -e "\
s/_VERSION_/$(LOCAL_DIST_VERSION)/g;\
s/_PROJECT_/$(LOCAL_PROJECT)/g;\
s/_TARGET_STEM_//g;\
s/_FILENAME_/$$FILENAME/g;\
s/_DATE_/$(shell date +"%Y-%m-%d")/g;\
s/_EXPLANATION_/$$EXPLANATION/g;\
s/_URLDIR_/$$URLDIR/g;\
s/_SIZE_/$$SIZE/g;\
" > $@
remove_dist:
$(RM) -rf $(DISTDIR)
distclean: remove_dist
$(DIST_FILE): distclean
mkdir -p $(DISTDIR)/src/$(PROJECT)
mkdir -p $(DISTDIR)/pckg
$(RM) -rf $(DISTDIR)/src/$(PROJECT)/*
mkdir -p $(DISTDIR)/src/$(PROJECT)/mod
cd $(TOPDIR); find . -type f | \
grep -ve 'CVS\|contrib/nomake\|tar.gz\|/dist/\|experimental' | \
xargs tar -cf - | tar -C $(DISTDIR)/src/$(PROJECT) -xf -
echo $(DIST_VERSION) > $(DISTDIR)/src/$(PROJECT)/VERSION ;\
echo $(REQUIRED) | while read mod ;\
do make -C $(JWBDIR)/$$mod clean ;\
cp -r $(JWBDIR)/$$mod $(DISTDIR)/src/$(PROJECT)/mod/ ;\
done ;\
cp $(JWBDIR)/Makefile $(DISTDIR)/src/$(PROJECT)/mod/ ;\
tar -czv -C $(DISTDIR)/src/ -f $(DIST_FILE) $(PROJECT)
build.dist: $(DIST_FILE)
# -- install.dist
install.dist: $(DIST_FILE) $(SSI_PREFIX)_$(PROJECT)_$(DIST_VERSION).html
@echo "-- installing distribution files to $(TARGET_HOST):$(TARGET_DIR) as user $(TARGET_USER)"
$(CVS_RSH) -l $(TARGET_USER) $(TARGET_HOST) -C "\
mkdir -p $(TARGET_DIR); chmod $(TARGET_DIR_MODE) $(TARGET_DIR)"
/usr/bin/rsync -az -v --links -e $(CVS_RSH) $(DIST_FILE) $(TARGET_USER)@$(TARGET_HOST):$(TARGET_DIR)
$(CVS_RSH) -l $(TARGET_USER) $(TARGET_HOST) -C "\
cd $(TARGET_DIR); find . -type d | xargs -r chmod $(TARGET_DIR_MODE); find . -type f | xargs -r chmod $(TARGET_FILE_MODE)"
@echo "-- installing referrer include files to $(TARGET_HOST) as user $(TARGET_USER)"
for DIR in $(DOWNLOAD_REFERRER_DIRS) ; do \
echo "to $$DIR" ;\
$(CVS_RSH) -l $(TARGET_USER) $(TARGET_HOST) -C "\
mkdir -p $$DIR; chmod $(TARGET_DIR_MODE) $(TARGET_DIR)" ;\
/usr/bin/rsync -az -v --links -e $(CVS_RSH) $(TMPHTML)/ssi_download_*.html $(TARGET_USER)@$(TARGET_HOST):$$DIR ;\
$(CVS_RSH) -l $(TARGET_USER) $(TARGET_HOST) -C "\
cd $$DIR; find . -type d | xargs -r chmod $(TARGET_DIR_MODE); find . -type f | xargs -r chmod $(TARGET_FILE_MODE)" ;\
done

View file

@ -1,130 +0,0 @@
include $(JWBDIR)/make/defs.mk
ifeq ($(DEVELOPMENT),true)
GENERATE_DOXYGEN ?= true
endif
ifneq ($(GENERATE_DOXYGEN),true)
include $(JWBDIR)/make/dummy.mk
else
UPLOAD_FILE_MODE ?= 644
UPLOAD_DIR_MODE ?= 755
include $(JWBDIR)/make/upload-defs.mk
UPLOAD_URL ?= $(UPLOAD_URL_DEVEL_DOC)/$(PROJECT)/doxygen/:$(UPLOAD_FILE_MODE):$(UPLOAD_DIR_MODE):$(UPLOAD_USER).$(UPLOAD_GROUP)
DX_INCLUDE ?= header.html footer.html styles.css
DX_LOGO ?= logo.png
DX_UNTEMPLATED = $(patsubst %.tmpl,%,$(wildcard *.tmpl))
DX_OUTPUT_DIR ?= html
DX_INSTALL_DIR ?= $(DOC_PREFIX)/devel
DX_DOC_FILES = $(DX_INCLUDE) $(DX_LOGO)
DX_DOXYGEN_CONF ?= doxygen.conf
DX_INCLUDE_TMPL_DIR ?= $(JWBDIR)/tmpl/doxygen
DX_FALLBACK_CONF_TMPL ?= $(DX_INCLUDE_TMPL_DIR)/doxygen.conf.tmpl
DX_BROWSER ?= $(BROWSER)
# replaced pattern defaults
DX_FILE_PATTERNS ?= *.h *.c *.cpp
DX_INPUT_DIRS ?= $(TOPDIR)/include
DX_SRC_IS_JAVA ?= NO
DX_EXCLUDE_FILES ?=
DX_INCLUDE_PATH ?=
DX_RECURSIVE ?= YES
DX_EXTRACT_STATIC ?= NO
DX_INLINE_SOURCES ?= NO
DX_SOURCE_BROWSER ?= NO
all: html
install: install.done
distclean: clean
clean: clean.doxygen
doc: all
upload: upload.done
html: doxygen.done cpfiles.done
view: doc.done
$(DX_BROWSER) $(DX_OUTPUT_DIR)/index.html
doxygen.done: $(DX_UNTEMPLATED) $(DX_DOC_FILES)
umask 0022 && doxygen $(DX_DOXYGEN_CONF)
touch $@
cpfiles.done: doxygen.done $(DX_DOC_FILES)
umask 0022 && cp $(DX_DOC_FILES) $(DX_OUTPUT_DIR)
touch $@
doc.done: doxygen.done cpfiles.done
touch $@
upload.done: doxygen.done cpfiles.done
upload.sh $(DX_OUTPUT_DIR)/ $(UPLOAD_URL)
clean.doxygen:
$(RM) -rf $(DX_OUTPUT_DIR) *.done $(DX_UNTEMPLATED) $(DX_INCLUDE) *.bak default-* doxygen.conf *.tmp
inst-dir.done:
$(INSTALL) -d -o $(DOCDIROWNER) -g $(DOCDIRGROUP) -m $(DOCDIRMODE) $(DX_INSTALL_DIR)
touch $@
install.done: doxygen.done inst-dir.done
make install.doxygen
touch $@
install.doxygen:
$(INSTALL) -p -o $(DOCOWNER) -g $(DOCGROUP) -m $(DOCMODE) \
$(wildcard $(DX_OUTPUT_DIR)/*.html) \
$(wildcard $(DX_OUTPUT_DIR)/*.gif) \
$(wildcard $(DX_OUTPUT_DIR)/*.png) \
$(wildcard $(DX_OUTPUT_DIR)/*.css) \
$(DX_INSTALL_DIR)
$(DX_DOXYGEN_CONF): $(firstword $(wildcard $(DX_DOXYGEN_CONF).tmpl $(DX_FALLBACK_CONF_TMPL)))
$(SED) " \
s/__VERSION__/$(DIST_VERSION)/g; \
s/__PROJECT__/$(PROJECT)/g; \
s/__PROJECT_CAPNAME__/$(PROJECT_CAPNAME)/g; \
s%__PROJECT_SUMMARY__%$(PROJECT_SUMMARY)%g; \
s/__OUTPUT_DIR__/$(DX_OUTPUT_DIR)/g; \
s%__PROJECT_TOPDIR__%$(TOPDIR)%g; \
s%__JWBDIR__%$(JWBDIR)%g; \
s%__FILE_PATTERNS__%$(DX_FILE_PATTERNS)%g; \
s%__INPUT_DIRS__%$(DX_INPUT_DIRS)%g; \
s%__SRC_IS_JAVA__%$(DX_SRC_IS_JAVA)%g; \
s%__EXCLUDE_FILES__%$(DX_EXCLUDE_FILES)%g; \
s%__INCLUDE_PATH__%$(DX_INCLUDE_PATH)%g; \
s%__RECURSIVE__%$(DX_RECURSIVE)%g; \
s%__EXTRACT_STATIC__%$(DX_EXTRACT_STATIC)%g; \
s%__INLINE_SOURCES__%$(DX_INLINE_SOURCES)%g; \
s%__SOURCE_BROWSER__%$(DX_SOURCE_BROWSER)%g; \
" $< > $@.tmp
mv $@.tmp $@
doxygen-default-includes.done: $(DX_DOXYGEN_CONF)
doxygen -w html $(addprefix default-,$(DX_INCLUDE)) $<
touch $@
header.html: $(DX_INCLUDE_TMPL_DIR)/header.html doxygen-default-includes.done
cat default-$@ | sed -ne "/<\/tr>/r $<" -e 1x -e '2,$${x;p}' -e '$${x;p}' > $@.tmp
mv $@.tmp $@
footer.html: $(DX_INCLUDE_TMPL_DIR)/footer.html doxygen-default-includes.done
cat $< default-$@ > $@.tmp
mv $@.tmp $@
styles.css: $(DX_INCLUDE_TMPL_DIR)/styles.css doxygen-default-includes.done
cat default-$@ $< > $@.tmp
mv $@.tmp $@
logo.png: $(DX_INCLUDE_TMPL_DIR)/logo.png doxygen-default-includes.done
cp $< $@.tmp
mv $@.tmp $@
doxygen.conf.tmpl: | $(DX_FALLBACK_CONF_TMPL)
cp $(DX_FALLBACK_CONF_TMPL) $@.tmp
mv $@.tmp $@
endif

View file

@ -1,13 +0,0 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
include $(JWBDIR)/make/defs.mk
all:
clean:
$(RM) -rf *~ .*.swp
install: # nothing to be done
all: # nothing to be done
distclean: clean

View file

@ -1,21 +0,0 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
include $(JWBDIR)/make/run.mk
include $(JWBDIR)/make/depend.mk
include $(JWBDIR)/make/dev-utils.mk
all: $(EXE) $(BUILD_EXE_BIN) $(STRIP_DONE)
install: $(INSTALLED_EXE) $(INSTALLED_EXE_BIN)
run test: all.dirs $(EXE) $(EXE_BIN)
strace: $(EXE) $(EXE_BIN)
clean: execlean localclean profclean
ifeq ($(USE_PROJECT_LIB),true)
$(LIB_SO): $(LIB_A)
$(EXE): $(LIB_SO)
endif
all.dirs:

View file

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

View file

@ -1,91 +0,0 @@
GETTEXT_LOCALE ?= $(notdir $(shell $(PWD)))
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/rules.mk
include $(JWBDIR)/make/dev-utils.mk
GETTEXT_PROJECT_PO ?= $(PROJECT).po
GETTEXT_PROJECT_POT ?= $(PROJECT).pot
GETTEXT_POT ?= $(wildcard *.pot)
GETTEXT_PO ?= $(patsubst %.pot,%.po,$(GETTEXT_POT))
GETTEXT_MO ?= $(patsubst %.po,%.mo,$(GETTEXT_PO))
GETTEXT_INPUT_DIRS ?= $(wildcard $(TOPDIR)/tools $(TOPDIR)/src $(TOPDIR)/conf)
GETTEXT_INPUT_EXTS ?= php cpp conf
GETTEXT_INPUT_FILES ?= $(foreach d,$(GETTEXT_INPUT_DIRS),\
$(shell find $d -name translate-me $(foreach ext,$(GETTEXT_INPUT_EXTS),-o -name '*.$(ext)')))
GETTEXT_KEYWORDS ?= htr ehtr $(GETTEXT_EXTRA_KEYWORDS)
GETTEXT_LINKS ?= LC_MESSAGES
all: $(GETTEXT_MO) | $(GETTEXT_LINKS)
clean: clean-mo
$(RM) -rf *~ .*.swp
install: install_MO
distclean: clean
test:
extract: $(GETTEXT_POT)
clean-mo:
$(RM) -f *.mo *.tmp
$(GETTEXT_PROJECT_POT):
xgettext --from-code=utf-8 --package-name $(PROJECT) --package-version $(DIST_VERSION) \
--default-domain $(PROJECT) $(addprefix -k,$(GETTEXT_KEYWORDS)) \
--output $@.tmp $(XGETTEXT_EXTRA_OPTS) $(GETTEXT_INPUT_FILES)
mv $@.tmp $@
init: $(GETTEXT_PROJECT_POT)
msginit --no-translator --locale $(GETTEXT_LOCALE) \
--output-file $(GETTEXT_PROJECT_PO).tmp --input $<
sed -i 's/charset=ASCII/charset=UTF-8/' $(GETTEXT_PROJECT_PO).tmp
mv $(GETTEXT_PROJECT_PO).tmp $(GETTEXT_PROJECT_PO)
merge: $(GETTEXT_PROJECT_POT)
msgmerge -v --lang $(GETTEXT_LOCALE) --output-file $(GETTEXT_PROJECT_PO).tmp \
$(wildcard $(GETTEXT_PROJECT_PO)) $<
mv $(GETTEXT_PROJECT_PO).tmp $(GETTEXT_PROJECT_PO)
merge-pot: $(GETTEXT_POT)
msgmerge -v --lang $(GETTEXT_LOCALE) --output-file $(GETTEXT_PROJECT_PO).tmp \
$(wildcard $(GETTEXT_PROJECT_PO)) $<
mv $(GETTEXT_PROJECT_PO).tmp $(GETTEXT_PROJECT_PO)
%.po: %.pot
msgcat --lang $(GETTEXT_LOCALE) --output-file $@.tmp $^
mv $@.tmp $@
edit: merge $(GETTEXT_PROJECT_POT)
poedit $(GETTEXT_PROJECT_PO)
%.mo: %.po
msgfmt --check --verbose --output-file $@.tmp $<
mv $@.tmp $@
LC_%:
ln -s . $@
clean.lc-links:
rm -f $(GETTEXT_LINKS)
clean: clean.lc-links
#msginit --no-translator --locale es_MX --output-file $(PROJECT)_spanish.po --input $(PROJECT).pot
#sed --in-place $(PROJECT)_spanish.po --expression = '/"hello, world!"/,/#: / s/""/"hola mundo"/'
#mkdir --parents ./es_MX.utf8/LC_MESSAGES
#msgfmt --check --verbose --output-file ./es_MX.utf8/LC_MESSAGES/$(PROJECT).mo $(PROJECT)_spanish.po
GETTEXT_TMP = $(patsubst %.php,%.htr,$(GETTEXT_PREPROCESS))
GETTEXT_INPUT_FILES += $(GETTEXT_TMP)
all: htr
clean: htr-tmp-clean
htr: $(GETTEXT_TMP)
htr-tmp-clean:
$(RM) -f *.htr
define copy_rule
./%.htr.tmp: $(1)/%.php
cp $$< $$@
endef
$(foreach d, $(HTR_SOURCE_DIRS), $(eval $(call copy_rule,$(d))))

View file

@ -1,44 +0,0 @@
# - Clone remote repo into <mydir>/<myrepo>
# - Add the following to <mydir>/Makefile:
# - SUBMOD_SRC_DIR = ./<myrepo>
# - include <path-to-this-makefile>
# - run git-init-submod-remote
ifeq ($(USE_USER_URL),true)
JANWARE_USER_PREFIX = $(JANWARE_USER)@
endif
SUBMOD_SRC_DIR ?= .
GIT_SRV_ADMIN_SH = ssh $(JANWARE_USER_PREFIX)git.janware.com /opt/jw-build/bin/git-srv-admin.sh
GIT_REPO_URL = ssh://$(JANWARE_USER_PREFIX)git.janware.com/srv/git/$(JANWARE_USER)/contrib/$(SUBMOD_PKG_NAME)
SUBMOD_PATH = $(patsubst $(abspath $(TOPDIR))/%,%,$(abspath $(CWD)/$(SUBMOD_SRC_DIR)))
SUB_GIT = git -C $(SUBMOD_SRC_DIR)
ifneq ($(wildcard $(SUBMOD_SRC_DIR)/.git),)
SUBMOD_PKG_NAME := $(shell $(SUB_GIT) remote -v | sed -n 's/^[a-zA-Z_]\+\s//; s/ *.*//; s%.*/%%; s%\.git%%; 1p')
SUBMOD_MAIN_BRANCH := $(firstword $(shell $(SUB_GIT) branch --format '%(refname:lstrip=2)'))
endif
include $(JWBDIR)/make/defs.mk
all:
install:
clean:
distclean:
git-init-submod-remote:
[ "$(SUBMOD_PKG_NAME)" ] # SUBMOD_PKG_NAME
[ "$(SUBMOD_MAIN_BRANCH)" ] # SUBMOD_MAIN_BRANCH
[ "$(SUBMOD_SRC_DIR)" ] # SUBMOD_SRC_DIR
[ "$(SUBMOD_PATH)" ] # SUBMOD_PATH
[ "$(GIT_REPO_URL)" ] # GIT_REPO_URL
$(GIT_SRV_ADMIN_SH) -F contrib create-repo $(SUBMOD_PKG_NAME)
$(SUB_GIT) remote rename origin upstream
$(SUB_GIT) remote set-url --push upstream no-push
$(SUB_GIT) remote add origin $(GIT_REPO_URL)
$(SUB_GIT) config branch.$(SUBMOD_MAIN_BRANCH).remote origin
$(SUB_GIT) config branch.$(SUBMOD_MAIN_BRANCH).merge refs/heads/$(SUBMOD_MAIN_BRANCH)
$(SUB_GIT) push origin $(SUBMOD_MAIN_BRANCH)
git -C $(TOPDIR) submodule add -f $(GIT_REPO_URL) $(SUBMOD_PATH)
git submodule init
git commit -m "Add git submodule $(SUBMOD_PATH)" $(SUBMOD_SRC_DIR) $(TOPDIR)/.gitmodules

View file

@ -1,12 +0,0 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/defs-cpp.mk
ALL += $(BUILD_LIBDIR) $(PREREQ_DONE) $(BUILD_HDR)
include $(JWBDIR)/make/rules.mk
all: $(ALL)
clean: objclean textclean localclean
install: all

View file

@ -1,70 +0,0 @@
LESS_SRC ?= $(wildcard *.less)
LESS_GENERATED_CSS ?= $(patsubst %.less,%.css,$(LESS_SRC))
LESS_CPY ?= lesscpy
include $(JWBDIR)/make/defs.mk
# -- HTML
PRETTIER := $(shell $(WHICH) prettier 2>/dev/null)
INSTALLATION_FILE_TYPES += HTML
BUILD_HTMLDIR = $(TOPDIR)/htdocs
LOCAL_HTML += $(filter-out $(DONT_INSTALL),$(wildcard *.html *.css *.php *.js) $(FONTS) $(IMAGES))
DONT_LINT_HTML += $(shell $(ECHO) $(wildcard *.html) | xargs --no-run-if-empty $(GREP) -l '<?php')
LOCAL_HTML_LINT ?= $(addprefix .,$(addsuffix .lint,$(filter-out $(DONT_LINT_HTML),$(wildcard *.html *.php *.css *.js))))
HTML_STOPDIR_NAME ?= htdocs
ifeq ($(HTML_SUBDIR),)
HTML_SUBDIR := $(shell $(PWD) | $(SED) '/.*\/$(HTML_STOPDIR_NAME)\(\/\|$$\)/!d; s%.*/$(HTML_STOPDIR_NAME)\(/\|$$\)%%')
endif
ifeq ($(HTML_SUBDIR),)
INSTALL_HTMLDIR ?= $(PROJECT_HTMLDIR)
else
INSTALL_HTMLDIR ?= $(PROJECT_HTMLDIR)/$(HTML_SUBDIR)
endif
INSTALLED_HTML += $(addprefix $(INSTALL_HTMLDIR)/,$(LOCAL_HTML))
include $(JWBDIR)/make/js.mk
include $(JWBDIR)/make/rules.mk
include $(JWBDIR)/make/dev-utils.mk
all: $(LESS_GENERATED_CSS) lint
install: install_HTML
clean: textclean localclean doneclean clean.lesscpy
test:
%.css: %.less
$(LESS_CPY) $< > $@.tmp
mv $@.tmp $@
clean.lesscpy:
$(RM) -f $(LESS_GENERATED_CSS) *.tmp
lint: $(LOCAL_HTML_LINT)
clean: lint.clean
lint.clean:
rm -f .*.lint
.%.html.lint: %.html
ifneq ($(PRETTIER),)
$(PRETTIER) $< >/dev/null
endif
touch $@
.%.php.lint: %.php
php -l $<
ifneq ($(PRETTIER),)
#$(PRETTIER) --parser html $< >/dev/null
endif
touch $@
.%.css.lint: %.css
ifneq ($(PRETTIER),)
$(PRETTIER) $< >/dev/null
endif
touch $@
.%.js.lint: %.js
ifneq ($(PRETTIER),)
$(PRETTIER) $< >/dev/null
endif
touch $@

View file

@ -1,7 +0,0 @@
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/rules.mk
all:
install: install_IMG
clean:
distclean:

View file

@ -1,44 +0,0 @@
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/defs-cpp.mk
include $(JWBDIR)/make/dev-utils.mk
# variables
SRC_H += $(PROJ_H) $(wildcard $(HDRDIR_SCOPE_SUFFIX)/*.h)
# mandatory targets
all: $(PROJ_H)
clean: clean.include
install: install_HDR
# not wäry naaice
ifneq ($(HDRDIR_SCOPE_SUFFIX),)
install_HDR: dir_install_hdr_suffix.done
dir_install_hdr_suffix.done:
$(INSTALL) -d -o $(HDRDIROWNER) -g $(HDRDIRGROUP) -m $(HDRDIRMODE) $(INSTALL_HDRDIR)/$(HDRDIR_SCOPE_SUFFIX)
touch $@
endif
# convenience targets
project-header: $(PROJ_H)
# rules
clean.include:
$(RM) -rf *.h *~ .*.swp *.done $(PROJ_H) $(HDRDIR_SCOPE_SUFFIX)
$(PROJ_H): $(filter-out $(PROJ_H) $(PROJECT)/$(PROJ_H),$(wildcard *.h $(PROJECT)/*.h))
echo "#ifndef _$(PROJECT_CAPNAME)_H" > $@.tmp
echo "#define _$(PROJECT_CAPNAME)_H" >> $@.tmp
echo >> $@.tmp
for h in $(sort $(patsubst $(PROJECT)/%,%,$^)); do echo "#include <$(PROJECT)/$$h>"; done >> $@.tmp
echo >> $@.tmp
echo "#endif /* #ifndef _$(PROJECT_CAPNAME)_H */" >> $@.tmp
mv $@.tmp $@
install-links:
DEVELOPMENT=false make do-install-links
do-install-links:
@$(call install_links,HDR)
include $(JWBDIR)/make/rules.mk

View file

@ -1,54 +0,0 @@
SOURCE_FILES ?= $(filter-out CVS .git $(LOCAL_MKFILES) %.done, $(wildcard *))
TARGET_DIR ?= $(PREFIX)/share
SOURCE_BASE ?= .
RELPATHS = $(foreach f,$(SOURCE_FILES),$(shell realpath -s --relative-to "$(SOURCE_BASE)" "$f"))
INSTALLED_FILES = $(addprefix $(TARGET_DIR)/,$(RELPATHS))
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/dev-utils.mk
ifeq ($(DEVELOPMENT),true)
TARGET_OWNER ?= $(shell id -un)
TARGET_GROUP ?= $(shell id -gn)
else
TARGET_OWNER ?= root
TARGET_GROUP ?= root
endif
TARGET_DIR_OWNER ?= $(TARGET_OWNER)
TARGET_DIR_GROUP ?= $(TARGET_GROUP)
TARGET_MODE ?= 440
TARGET_DIR_MODE ?= 770
all:
install: install.done
clean: done.clean
distclean:
done.clean:
$(RM) -f *.done
$(TARGET_DIR)/%: $(SOURCE_BASE)/%
@if [ -L "$<" -o -f "$<" ]; then \
echo $(INSTALL) -p -D -m $(TARGET_MODE) -o $(TARGET_OWNER) -g $(TARGET_GROUP) "$<" "$@" ;\
$(INSTALL) -p -D -m $(TARGET_MODE) -o $(TARGET_OWNER) -g $(TARGET_GROUP) "$<" "$@" ;\
else \
echo $(INSTALL) -d -D -m $(TARGET_DIR_MODE) -o $(TARGET_DIR_OWNER) -g $(TARGET_DIR_GROUP) "$@" ;\
$(INSTALL) -d -D -m $(TARGET_DIR_MODE) -o $(TARGET_DIR_OWNER) -g $(TARGET_DIR_GROUP) "$@" ;\
fi
install.done: $(INSTALLED_FILES)
touch $@
# this used to work fine until an enormous $(SOURCE_FILES) was encountered
install-old.done:
for f in $(SOURCE_FILES); do \
relpath=`realpath -s --relative-to "$(SOURCE_BASE)" "$$f"` ;\
if [ -d "$$f" ]; then \
$(INSTALL) -d -D -m $(TARGET_DIR_MODE) -o $(TARGET_DIR_OWNER) -g $(TARGET_DIR_GROUP) "$(TARGET_DIR)/$$relpath" ;\
else \
$(INSTALL) -p -D -m $(TARGET_MODE) -o $(TARGET_OWNER) -g $(TARGET_GROUP) "$$f" "$(TARGET_DIR)/$$relpath" ;\
fi ;\
done
touch $@

View file

@ -1,62 +0,0 @@
# == defs
URL_BASE = http://www.kernel.org/pub/linux/utils/boot/syslinux
URL_FILE = SYSLINUX_URL
URL = $(shell $(CAT) $(URL_FILE))
DLOAD_DIR = /home/samba/dat/share/exe/linux/syslinux
BUILD_DIR = cd_root
DIRS = $(DLOAD_DIR) $(BUILD_DIR)
UNPACK_DIR = isolinux
ISO_IMAGE ?= image.iso
ISOLINUX_BIN = $(UNPACK_DIR)/isolinux.bin
MENU_32 = $(UNPACK_DIR)/com32/menu/menu.c32
INITRD = /boot/initrd
CD_FILES = \
$(MENU_32) \
$(ISOLINUX_BIN)
define SYSLINUX_BASE
$(notdir $(shell $(SED) 's/.tar.bz2$$//' $(URL_FILE)))
endef
# == targets
all: $(ISO_IMAGE)
install:
clean: syslinux.clean
distclean: clean
# == rules
syslinux.clean:
$(RM) -rf *.done
$(RM) -rf $(BUILD_DIR) $(UNPACK_DIR)
$(RM) -f $(ISO_IMAGE) $(URL_FILE) $(URL_FILE).tmp
dirs.done:
mkdir -p $(DIRS)
touch $@
$(URL_FILE):
lynx -dump $(URL_BASE) | \
$(SED) '/syslinux-.*\.tar\.bz2$$/ !d; s/ .*http:/http:/' |\
tail -1 > $@.tmp
mv $@.tmp $@
dload.done: $(URL_FILE)
wget -c $(shell $(CAT) $<) -P $(DLOAD_DIR)
touch $@
$(MENU_32): unpack.done
unpack.done: $(URL_FILE) dload.done
tar -xjf $(shell echo $(DLOAD_DIR)/$(SYSLINUX_BASE).tar.bz2 | $(SED) 's/ //g')
mv $(SYSLINUX_BASE) $(UNPACK_DIR)
touch $@
GENERATE = /bin/bash $(JWB_SCRIPT_DIR)/generate-boot-medium.sh
BOOT_CONF = boot.conf
$(ISO_IMAGE): $(BOOT_CONF) dirs.done $(CD_FILES)
$(GENERATE) -o $@ -d $(BUILD_DIR) -f $< $(CD_FILES)

View file

@ -1,17 +0,0 @@
JAVA_SRC_DIR ?= .
JAVA_SRC ?= $(wildcard $(JAVA_SRC_DIR)/*.java)
JAVA_CLASSFILES += $(patsubst %.java,%.class,$(JAVA_SRC))
JAVA_CLASSPATH = $(shell echo $(CLASSPATH) | sed 's/ */:/g')
include $(JWBDIR)/make/defs.mk
all: $(JAVA_CLASSFILES)
install:
clean: clean.java
distclean:
clean.java:
$(RM) -f *.class
$(JAVA_CLASSFILES): $(JAVA_SRC)
CLASSPATH=$(JAVA_CLASSPATH) javac $^

View file

@ -1,31 +0,0 @@
JAVA ?= /usr/bin/java
JS_MINIFY_FILTER_IN ?= sed 's/console\.[a-z]\+([^)]\+) *;//g'
JS_SRC ?= $(filter-out %.min.js,$(wildcard *.js))
JS_GENERATED ?= $(patsubst %.js,%.min.js,$(JS_SRC))
JS_EXTRA_EXTERNS ?=
JS_CC_BUILD_ROOT ?= $(PROJECTS_DIR)/closure-compiler/contrib/closure-compiler/install-root
JS_EXTERNS_DIRS ?= $(firstword $(wildcard $(JS_CC_BUILD_ROOT)/$(realpath $(PROJECTS_DIR))/closure-compiler/share/externs /opt/closure-compiler/share/externs))
JS_EXTERNS ?= $(sort $(JS_EXTRA_EXTERNS) jquery-3.3.js)
JS_EXTERN_PATHS ?= $(wildcard $(foreach d,$(JS_EXTERNS_DIRS),$(addprefix $d/,$(JS_EXTERNS))))
JS_MINIFY_OPTS ?= $(addprefix --externs ,$(JS_EXTERN_PATHS)) --compilation_level ADVANCED --strict_mode_input
JS_MINIFY_EXE ?= $(JAVA) -jar $(firstword $(wildcard \
$(JS_CC_BUILD_ROOT)/usr/share/java/closure-compiler.jar \
/usr/share/java/closure-compiler.jar \
) closure-compiler.jar-not-found)
JS_MINIFY ?= $(JS_MINIFY_EXE) $(JS_MINIFY_OPTS)
# This is not nice. It requires install-files to be included from elsewhere,
# which is not obvious. OTOH, if it isn't, SOURCE_FILES doesn't do any harm,
# either.
SOURCE_FILES += $(JS_GENERATED)
all: $(JS_GENERATED)
clean: minify.clean
%.min.js: %.js
cat $< | $(JS_MINIFY_FILTER_IN) > $@.filtered
$(JS_MINIFY) $@.filtered > $@.tmp
mv $@.tmp $@
minify.clean:
rm -f $(JS_GENERATED) *.tmp *.filtered

View file

@ -1,17 +0,0 @@
# jan's utility modules
# (c) 2001-2005 jannet it services
# contact@jannet.de
# $Id$
LD_LIB_PATH_ENV := $(LD_LIBRARY_PATH)
EXE_SEARCH_PATH_ENV := $(PATH)
LD_LIB_PATH_LDFLAGS = $(shell echo $(FINAL_LDFLAGS) | $(SED) 's/^-[^L] *[^ ]*/ /g; s/[ ]-[^L] *[^ ]*/ /g; s/-L[ ]*\([^ ]*\)[ ]*/\1:/g')
ifeq ($(TARGET),mingw)
DLL_PATH = $(shell echo $(LD_LIBRARY_PATH) | $(SED) 's/:/;/g');$(CROSS_TOOL_DIR)/bin
endif
#export LD_LIBRARY_PATH = $(shell echo $(strip $(LD_LIB_PATH_LDFLAGS):$(LD_LIB_PATH):$(LD_LIB_PATH_ENV)) | $(SED) 's/ /:/g; s/::/:/g')
LD_LIBRARY_PATH := $(call proj_query, ldlibpath $(PROJECT) $(PREREQ_BUILD))
export LD_LIBRARY_PATH
export PATH := $(call proj_query, exepath $(PROJECT) $(PREREQ_BUILD)):$(EXE_SEARCH_PATH_ENV)

View file

@ -1,96 +0,0 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/defs-cpp.mk
include $(JWBDIR)/make/rules.mk
include $(JWBDIR)/make/dev-utils.mk
all:
ifeq ($(wildcard $(LIB_A)),)
USE_PROJECT_LIB = false
endif
ifeq ($(USE_PROJECT_LIB),false)
ifeq ($(TARGET),mingw)
SHOBJS += $(wildcard *.dll)
else
SHOBJS += $(wildcard *.so)
endif
all: $(LD_CONF)
install:
else
all: $(LD_CONF) $(LIB_SO) $(LINKS_SO) $(MSVCPP_IMPLIB) $(STRIP_DONE)
install: install_LIB
endif
clean: libclean local_libclean clean.ld-conf
distclean: clean
local_libclean: clean.mingw clean.unix clean.all
ifneq ($(wildcard *.so *.so.*),)
install: install_files_LD_CONF
endif
clean.unix:
ifneq ($(TARGET),mingw)
$(RM) -rf *.so.* *.so st*
endif
clean.mingw:
ifeq ($(TARGET),mingw)
$(RM) -rf *.dll *.def *.exp *.lib
endif
clean.all:
$(RM) -rf *.a *.o *~ st* .*.swp *.done ld-*.conf version.ldscript
ld-%.conf:
echo $(INSTALL_LIBDIR) > $@.tmp
mv $@.tmp $@
clean.ld-conf:
$(RM) -f $(LD_CONF)
echo.libs:
@echo INSTALLED_LIB_SO = $(INSTALLED_LIB_SO)
@echo INSTALLED_LIB = $(INSTALLED_LIB)
install-links:
l=$(shell $(PWD))/$(notdir $(INSTALLED_LIB_SO)) ;\
cd $(dir $(INSTALLED_LIB_SO)) &&\
sudo ln -sf $$l
# ------------------------------------------ contrib libraries
# deps on mandatory targets
all: $(CONTRIB_LIBS)
clean: clean.contrib-libs
# deps on optional targets
echo-contrib: echo.contrib-libs echo.libs
# rules
clean.contrib-libs:
$(RM) -f $(CONTRIB_LIBS)
define contrib_lib_search_rules
%.dll: $(1)/%.dll
cp -p $$< $$@
endef
$(foreach p,$(CONTRIB_LIBS_PATH),$(eval $(call contrib_lib_search_rules,$(p))))
echo.contrib-libs:
@echo CONTRIB_LIBS_PATH = $(CONTRIB_LIBS_PATH)
@echo CONTRIB_LIBS = $(CONTRIB_LIBS)
ifeq ($(TARGET),mingw)
clean.winres:
$(RM) -f $(WINRES_RC) $(WINRES_O) *.tmp
clean: clean.winres
#%.o : %.rc
# $(WINDRES) $^ -o $@
endif

View file

@ -1,6 +0,0 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
include $(JWBDIR)/make/tools.mk

View file

@ -1,36 +0,0 @@
LY_PDF = $(patsubst %.ly,%.pdf,$(wildcard *.ly))
LY_MIDI = $(patsubst %.ly,%.midi,$(wildcard *.ly))
all: $(LY_PDF)
clean: clean.lilypond
view: $(LY_PDF)
kpdf $<
convert: convert.done
play: all
timidity *.midi
jack: all
timidity -Oj *.midi
jackview: all
make view & make jack
%.play: %.midi
%.pdf: %.ly
lilypond $<
clean.lilypond:
$(RM) -f *.pdf *.ps *.done *.tmp *.midi
convert.done:
set -e; for o in $(wildcard *.ly); do \
echo converting $$o ;\
cp $$o $$o.tmp ;\
convert-ly $$o.tmp ;\
mv $$o.tmp $$o ;\
done
touch $@

View file

@ -1,215 +0,0 @@
# abbreviations
define EXTRAVERSION
$(shell $(CAT) EXTRAVERSION)
endef
define COMPLETE_VERSION
$(shell $(CAT) COMPLETE_VERSION)
endef
HOST ?= $(HOSTNAME)
KERNEL_BASE ?= lx-$(HOST)
BOOT_LABEL ?= lx-$(KERNEL_VERSION)-$(RPM_RELEASE)
KERNEL_PKG_SUFFIX ?= .tar.gz
CUSTOMER ?= jannet
KERNEL_DLOAD_DIR ?= /home/samba/dat/exe/linux/os
KERNEL_PKG ?= $(KERNEL_DLOAD_DIR)/$(shell echo $(KERNEL_VERSION) | $(SED) 's/\([0-9]\.[0-9]*\)\..*/\1/')/linux-$(shell echo $(KERNEL_VERSION) | $(SED) 's/\(2\.6\.[0-9]+\)-..*/\1/')$(KERNEL_PKG_SUFFIX)
UPLOAD_HOST ?= pkg.janware.com
UPLOAD_PATH ?= /srv/dav/pub/packages/$(CUSTOMER)/$(KERNEL_BASE)
UPLOAD_OWNER ?= $(shell whoami)
KERNEL_MAJOR = $(shell echo $(KERNEL_VERSION) | cut -d\. -f1)
KERNEL_MINOR = $(shell echo $(KERNEL_VERSION) | cut -d\. -f2)
KERNEL_RELEASE = $(shell echo $(KERNEL_VERSION) | cut -d\. -f3)
KERNEL_PKG_BASE = $(KERNEL_DLOAD_DIR)/$(KERNEL_MAJOR).$(KERNEL_MINOR)/linux-$(KERNEL_VERSION).tar
ifneq ($(wildcard $(KERNEL_PKG_BASE).*),)
ifneq ($(wildcard $(KERNEL_PKG_BASE).gz),)
KERNEL_PKG = $(KERNEL_PKG_BASE).gz
KERNEL_SRC_DIR = $(shell tar -tzf $(KERNEL_DIR)/$(KERNEL_PKG) | grep -v pax_global_header | head -1)
endif
ifneq ($(wildcard $(KERNEL_PKG_BASE).bz2),)
KERNEL_PKG = $(KERNEL_PKG_BASE).bz2
KERNEL_SRC_DIR = $(shell tar -tjf $(KERNEL_DIR)/$(KERNEL_PKG) | grep -v pax_global_header | head -1)
endif
else
KERNEL_PKG = $(KERNEL_PKG_BASE).bz2
KERNEL_SRC_DIR = linux-$(KERNEL_VERSION)
endif
#HOST = $(shell cd ../..; $(PWD) | xargs basename)
WD := $(shell $(PWD))
TAG = $(shell echo V_$(KERNEL_VERSION)_$(RPM_RELEASE) | $(SED) 's/\./_/g')
ARCH = $(shell $(RPMBUILD) --showrc | $(SED) '/build arch / !d; s/.*build arch *://; s/ //g')
RPMBUILD = $(shell which rpmbuild 2>/dev/null)
ifeq ($(RPMBUILD),)
RPMBUILD = $(shell which rpm 2>/dev/null)
endif
#ifeq ($(wildcard RELEASE-$(KERNEL_VERSION)),)
#RPM_RELEASE := $(shell make newrelease; exit 1)
#else
#RPM_RELEASE_NUM := $(strip $(shell grep Id: RELEASE-$(KERNEL_VERSION) | $(SED) "s/.*RELEASE-$(KERNEL_VERSION),v[ ]*[0-9]*\.\([0-9]*\)[^0-9]*.*/\1/"))
#ifeq ($(UNAME_SUFFIX),)
#RPM_RELEASE = $(RPM_RELEASE_NUM)
#else
#RPM_RELEASE = $(UNAME_SUFFIX)$(RPM_RELEASE_NUM)
#endif
#endif
BASE = $(KERNEL_BASE)-$(COMPLETE_VERSION)
TMP_INSTALL = $(KERNEL_BASE)-$(COMPLETE_VERSION)
BASE_RUN = $(KERNEL_BASE)-run-$(COMPLETE_VERSION)
BASE_DEVEL = $(KERNEL_BASE)-devel-$(COMPLETE_VERSION)
ifeq ($(BOOT_LABEL),)
BOOT_LABEL = lx-$(COMPLETE_VERSION)
endif
KERNEL_TGZ = $(notdir $(KERNEL_PKG))
F_SPEC = $(BASE).spec
F_TGZ = $(BASE).tar.gz
F_SPM = $(BASE).src.rpm
F_RPM_RUN = $(BASE_RUN).$(ARCH).rpm
F_RPM_DEVEL = $(BASE_DEVEL).$(ARCH).rpm
F_RPMS = $(F_RPM_RUN) $(F_RPM_DEVEL)
F_BOOTFILES = $(addsuffix -$(COMPLETE_VERSION),$(addprefix $(TMP_INSTALL)/boot/,vmlinuz config System.map))
F_CURRENT = $(addprefix CURRENT_, SRC RPM_SRC RPM_RUN_I386 RPM_DEVEL_I386)
F_ULDONE = $(addsuffix .uldone,$(F_RPMS) $(F_TGZ) $(F_SPM) current)
# note that order matters for F_ULDONE and F_RPMS (remote directory attributes)
KERNEL_INSTALL_PREFIX = $(shell pwd)/$(TMP_INSTALL)
BUILD = sh $(JWBDIR)/devutil/jcs/build_linux.sh \
-c config-$(KERNEL_VERSION) \
-t $(HOST) \
-b $(WD) \
-a i386 \
-s $(KERNEL_SRC_DIR) \
-i $(TMP_INSTALL)
MKSPEC := $(JWBDIR)/devutil/jcs/mkspec-linux.sh
# exports
export KERNEL_VERSION
export KERNEL_INSTALL_PREFIX
# first target
all: rpm
# file rules
%.lxdone: config-$(KERNEL_VERSION) $(LOCAL_PRE_BUILD) linux-$(KERNEL_VERSION)/Makefile
$(BUILD) $(basename $@)
touch $@
$(TMP_INSTALL)/$(F_SPEC): linux-$(KERNEL_VERSION)/Makefile $(MKSPEC) Makefile
sh $(MKSPEC) -d $(TMP_INSTALL) -b $(KERNEL_BASE) -v $(shell echo $(COMPLETE_VERSION) | $(SED) 's/-[0-9][0-9]*.*//') -r $(RPM_RELEASE) -a $(ARCH) -l $(BOOT_LABEL) > $@
$(TMP_INSTALL)/boot/%-$(KERNEL_VERSION)-$(RPM_RELEASE): build.lxdone $(LOCAL_AFTER_KERNEL_BUILD)
@echo -n
.PRECIOUS: $(TMP_INSTALL)/boot/%-$(KERNEL_VERSION)
$(TMP_INSTALL)/boot/%-$(KERNEL_VERSION)-$(RPM_RELEASE): $(TMP_INSTALL)/boot/%-$(KERNEL_VERSION)
cp $< $@
$(F_TGZ): Makefile build.lxdone $(F_BOOTFILES) $(TMP_INSTALL)/$(F_SPEC)
tar -czf $@ \
$(F_BOOTFILES) \
$(addprefix $(TMP_INSTALL)/, \
lib \
$(F_SPEC) \
)
%.src.rpm: %.tar.gz
$(RPMBUILD) -ts $<
cp /usr/src/packages/SRPMS/$@ .
rpm.done: $(F_SPM)
$(RPMBUILD) --rebuild $(F_SPM)
touch $@
%.$(ARCH).rpm: rpm.done
cp /usr/src/packages/RPMS/$(ARCH)/$@ .
CURRENT_RPM_RUN_I386: $(F_RPM_RUN)
echo $(UPLOAD_PATH)/rpm/run/$(F_RPM_RUN) > $@
CURRENT_RPM_DEVEL_I386: $(F_RPM_RUN)
echo $(UPLOAD_PATH)/rpm/devel/$(F_RPM_DEVEL) > $@
CURRENT_RPM_SRC: $(F_RPM_RUN)
echo $(UPLOAD_PATH)/rpm/src/$(F_RPM_SRC) > $@
CURRENT_SRC: $(F_RPM_RUN)
echo $(UPLOAD_PATH)/src/$(F_TGZ) > $@
update.done:
cvs update -dP
make rpm
touch $@
upload.done: $(F_RPMS)
touch $@
%.tar.gz.uldone: %.tar.gz
upload.sh $< rsync_ssh://$(UPLOAD_HOST):$(UPLOAD_PATH)/src/$<:640:750:$(UPLOAD_OWNER).$(CUSTOMER)
touch $@
%.src.rpm.uldone: %.src.rpm
upload.sh $< rsync_ssh://$(UPLOAD_HOST):$(UPLOAD_PATH)/rpm/src/$<:640:750:$(UPLOAD_OWNER).$(CUSTOMER)
touch $@
%.rpm.uldone: %.rpm
upload.sh $< rsync_ssh://$(UPLOAD_HOST):$(UPLOAD_PATH)/rpm/$(shell echo $@ | $(SED) 's/.*\(run\|devel\).*/\1/')/$<:640:750:$(UPLOAD_OWNER).$(CUSTOMER)
touch $@
current.uldone: $(F_CURRENT)
upload.sh $^ rsync_ssh://$(UPLOAD_HOST):$(UPLOAD_PATH)/:640:750:$(UPLOAD_OWNER).$(CUSTOMER)
touch $@
tag.done:
cvs tag $(TAG)
touch $@
copy-run.done: $(F_RPM_RUN)
scp $< root@$(HOST):/root/rpm/
touch $@
copy-devel.done: $(F_RPM_DEVEL)
scp $< root@$(HOST):/root/rpm/
touch $@
ping:
ping $(HOST)
ssh:
$(CVS_RSH) -l root $(HOST)
# user targets
unpack: unpack.done
build: build.lxdone
driver: driver.done
tgz: $(F_TGZ)
spm: $(F_SPM)
rpm: $(F_RPMS)
upload: update.done rpm $(F_ULDONE)
tag: tag.done
install: build.lxdone install.lxdone
copy-run: copy-run.done
copy-devel: copy-devel.done
copy: copy-run copy-devel
patch: patches.done
shutdown:
$(CVS_RSH) -l root $(HOST) "shutdown -h now"
reboot:
-l root $(HOST) "reboot"
update-rpm: copy
$(CVS_RSH) -l root $(HOST) rpm -U $(addprefix rpm/,$(F_RPMS))
erase-rpm:
$(CVS_RSH) -l root $(HOST) rpm -e $(KERNEL_BASE)-run $(KERNEL_BASE)-devel
dist: clean
cd ..;\
tar -czf kernel.tar.gz `find kernel -maxdepth 1 -type f | grep -ve "setup\|trash\|CVS"`
mv ../kernel.tar.gz .
clean:
$(RM) -rf $(KERNEL_BASE)-*
$(RM) -rf install/* reiser.patch *~ *.done *.lxdone *.uldone *.patch *.diff *.rpm *.tar.gz *.tar \
$(SCOPE_DRIVER_BASE)
$(RM) -rf linux linux-$(KERNEL_VERSION) CURRENT_* pax_global_header
$(RM) -f toplevel-makefile EXTRAVERSION COMPLETE_VERSION
distclean: clean

View file

@ -1,176 +0,0 @@
define EXTRAVERSION
$(shell $(CAT) EXTRAVERSION)
endef
define COMPLETE_VERSION
$(shell $(CAT) COMPLETE_VERSION)
endef
KERNEL_MAJOR = $(shell echo $(KERNEL_VERSION) | cut -d\. -f1)
KERNEL_MINOR = $(shell echo $(KERNEL_VERSION) | cut -d\. -f2)
KERNEL_RELEASE = $(shell echo $(KERNEL_VERSION) | cut -d\. -f3)
KERNEL_DLOAD_DIR ?= /home/samba/dat/share/exe/linux/os
KERNEL_PKG_BASE = $(KERNEL_DLOAD_DIR)/$(KERNEL_MAJOR).$(KERNEL_MINOR)/linux-$(KERNEL_VERSION).tar
LINUX_KERNEL_PATCH_DIR ?= $(CVS_ROOT_DIR)/conf/jannet.de/all/lx-patches
HOST ?= $(HOSTNAME)
ifneq ($(wildcard $(KERNEL_PKG_BASE).*),)
ifneq ($(wildcard $(KERNEL_PKG_BASE).gz),)
KERNEL_PKG = $(KERNEL_PKG_BASE).gz
KERNEL_SRC_DIR = $(shell tar -tzf $(KERNEL_DIR)/$(KERNEL_PKG) | grep -v pax_global_header | head -1)
endif
ifneq ($(wildcard $(KERNEL_PKG_BASE).bz2),)
KERNEL_PKG = $(KERNEL_PKG_BASE).bz2
KERNEL_SRC_DIR = $(shell tar -tjf $(KERNEL_DIR)/$(KERNEL_PKG) | grep -v pax_global_header | head -1)
endif
else
KERNEL_PKG = $(KERNEL_PKG_BASE).bz2
KERNEL_SRC_DIR = linux-$(KERNEL_VERSION)
endif
WD := $(shell $(PWD))
TAG = $(shell echo V_$(KERNEL_VERSION)_$(RPM_RELEASE) | $(SED) 's/\./_/g')
ARCH = $(shell $(RPMBUILD) --showrc | $(SED) '/build arch / !d; s/.*build arch *://; s/ //g')
PATCHES += $(wildcard $(LINUX_KERNEL_PATCH_DIR)/*-$(KERNEL_VERSION).patch) \
$(wildcard $(LINUX_KERNEL_PATCH_DIR)/*-$(KERNEL_VERSION).diff)
LOCAL_PATCHES = $(notdir $(PATCHES))
SUBMAKEFILE = $(JWBDIR)/make/linux-rpm-build.mk
KERNEL_URL = ftp.kernel.org:/pub/linux/kernel/v$(KERNEL_MAJOR).$(KERNEL_MINOR)/linux-$(KERNEL_VERSION).tar.bz2
KERNEL_TGZ = $(notdir $(KERNEL_URL))
# exports
export KERNEL_VERSION
export KERNEL_INSTALL_PREFIX
# first target
all: rpm
install: install.this
clean: thisclean
distclean: clean
# file rules
$(KERNEL_PKG):
mkdir -p $(dir $(KERNEL_PKG))
ftp -a $(KERNEL_URL)
install -m 664 $(notdir $(KERNEL_PKG)) $@
EXTRAVERSION: linux-$(KERNEL_VERSION)/Makefile
$(SED) '/^ *EXTRAVERSION *=/ !d; s/^ *EXTRAVERSION *= *-*//; s/ *$$//' $< >$@
COMPLETE_VERSION: EXTRAVERSION
#ifeq ($(shell echo $(KERNEL_VERSION) | $(SED) '/[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*/ !d'),)
# echo -n $(KERNEL_VERSION)-$(EXTRAVERSION) | $(SED) 's/- *$$//' > $@
#else
echo -n $(KERNEL_MAJOR).$(KERNEL_MINOR).$(KERNEL_RELEASE)$(EXTRAVERSION) > $@
#endif
config-$(KERNEL_VERSION):
cp $(shell ls config-$(KERNEL_MAJOR).$(KERNEL_MINOR).* | $(SED) 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]\)[.$$]./\1.\2.0\3/; s/\.\([0-9]\)$$/.0\1/' | sort -g | $(SED) 's/\.0/./g; $$ !d') $@
cvs add $@
cvs commit $@
toplevel-makefile: unpack.done patches.done
awk -v release=$(RPM_RELEASE) '{ \
if ($$0 ~ /EXTRAVERSION *= *-/) { \
oldextra=$$3; \
gsub(/-/,_,oldextra); \
printf "EXTRAVERSION = _%s-%s\n", oldextra, release \
} else if ($$0 ~ /EXTRAVERSION *= *\./) { \
oldextra=$$3; \
gsub(/-/,_,oldextra); \
printf "EXTRAVERSION = %s-%s\n",oldextra, release \
} else if ($$0 ~ /EXTRAVERSION *= *$$/) { \
if (release ~ "^ *$$") { \
printf "EXTRAVERSION =\n" \
} else { \
printf "EXTRAVERSION = -%s\n",release \
} \
} else { \
print $$0 \
} \
}' linux-$(KERNEL_VERSION)/Makefile >$@
linux-$(KERNEL_VERSION)/Makefile: toplevel-makefile
cp $< $@
unpack.done: $(KERNEL_PKG)
$(RM) -rf linux-$(KERNEL_VERSION)
ifeq ($(suffix $(KERNEL_PKG)),.gz)
tar -xzf $(KERNEL_PKG)
endif
ifeq ($(suffix $(KERNEL_PKG)),.bz2)
tar -xjf $(KERNEL_PKG)
endif
ln -s linux-$(KERNEL_VERSION) linux
touch $@
update.done:
cvs update -dP
make rpm
touch $@
version:
date >> RELEASE-$(KERNEL_VERSION)
cvs commit -m "$(KERNEL_VERSION)" RELEASE-$(KERNEL_VERSION)
exit 1
patch-%:
mkdir -p patches
make patches/$*-$(KERNEL_VERSION).patch
clean-patch-%:
$(RM) -f patches/$*-$(KERNEL_VERSION).patch
make patches/$*-$(KERNEL_VERSION).patch
patches/%-$(KERNEL_VERSION).patch:
make unpack.done
export LANG=en_US ;\
diff --exclude=CVS --unidirectional-new-file -aur \
linux-$(KERNEL_VERSION) linux-$(KERNEL_VERSION)-$* | \
grep -vie "^Nur in \|Only in " > $@.part; exit 0
mv $@.part $@
patches.done: unpack.done $(addsuffix .done,$(notdir $(PATCHES)))
touch $@
%.patch.done: %.patch
patch -d linux-$(KERNEL_VERSION) -p1 < $<
touch $@
%.diff.done: %.diff
patch -d linux-$(KERNEL_VERSION) -p1 < $<
touch $@
%.patch:
make $(filter %/$@,$(PATCHES))
cp $(filter %/$@,$(PATCHES)) $@
%.diff:
make $(filter %/$@,$(PATCHES))
cp $(filter %/$@,$(PATCHES)) $@
unpack: unpack.done
patch: patches.done
prepare: unpack patch EXTRAVERSION COMPLETE_VERSION
install: all
DEFERRED_TARGETS = \
current.uldone ping ssh build \
tgz spm rpm upload tag copy-run copy-devel copy \
shutdown reboot update-rpm erase-rpm
$(DEFERRED_TARGETS): prepare
make -f $(JWBDIR)/make/linux-rpm-build.mk $@
thisclean:
touch EXTRAVERSION COMPLETE_VERSION
make -f $(SUBMAKEFILE) clean
install.this:
make -f $(SUBMAKEFILE) install
export \
TOPDIR JWBDIR KERNEL_VERSION RPM_RELEASE HOST KERNEL_PKG_SUFFIX CUSTOMER \
KERNEL_BASE_DIR KERNEL_PKG KERNEL_BASE UPLOAD_HOST UPLOAD_PATH \
UPLOAD_OWNER BOOT_LABEL BOOT_LABEL PATCHES KERNEL_MAJOR KERNEL_MINOR \
KERNEL_RELEASE WD

View file

@ -1,72 +0,0 @@
# === pre-define these >
TOOLS_DIR ?= $(TOPDIR)/tools
TOOLS_INCLUDE_DIR ?= $(TOOLS_DIR)
CPP_PREFIX ?= YLo
CPP_SUFFIX ?=
SO_PREFIX ?= lo_
LOADABLE_OBJ_HOOK ?= LOADABLE_OBJECT_HOOK
LOADABLE_OBJ_IGNORE ?=
# === pre-define these <
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/defs-cpp.mk
include $(JWBDIR)/make/profiler-defs.mk
include $(JWBDIR)/make/dev-utils.mk
.PRECIOUS: %.cpp %.o
LOADABLE_OBJS_HEADER ?= $(wildcard $(TOOLS_INCLUDE_DIR)/$(CPP_PREFIX)*$(CPP_SUFFIX).h)
LOADABLE_OBJS_BASE ?= $(patsubst %$(CPP_SUFFIX),%,$(patsubst $(CPP_PREFIX)%,%,$(basename $(notdir $(LOADABLE_OBJS_HEADER)))))
LOADABLE_OBJS = $(filter-out $(LOADABLE_OBJ_IGNORE),$(LOADABLE_OBJS_BASE))
LOADABLE_OBJ_CPP = $(patsubst %,%.cpp,$(LOADABLE_OBJS))
LOADABLE_OBJS_O = $(patsubst %,%.o,$(LOADABLE_OBJS))
OTHER_CPP_IGNORE += $(patsubst %,$(CPP_PREFIX)%.cpp,$(LOADABLE_OBJ_IGNORE)) $(patsubst %,%.cpp,$(LOADABLE_OBJ_IGNORE))
SRC_ALL_CPP_IGNORE += $(OTHER_CPP_IGNORE)
OTHER_CPP ?= $(filter-out $(LOADABLE_OBJ_CPP) $(OTHER_CPP_IGNORE),$(wildcard *.cpp))
ifneq ($(OTHER_CPP),)
OTHER_O = $(patsubst %.cpp,%.o,$(OTHER_CPP))
OTHER_LIB = liblocal.a
OTHER_LIB_LDFLAGS = -L. -llocal
OTHER_MEMBERS_O = $(OTHER_LIB)($(OTHER_O))
endif
ifneq ($(TARGET),mingw)
LOADABLE_OBJ_LIBS = $(addprefix $(SO_PREFIX), $(addsuffix .so, $(LOADABLE_OBJS)))
else
LOADABLE_OBJ_LIBS = $(addprefix $(SO_PREFIX), $(addsuffix .dll, $(LOADABLE_OBJS)))
endif
BUILD_LOADABLE_OBJ_LIBS = $(addprefix $(BUILD_LIBDIR)/,$(LOADABLE_OBJ_LIBS))
INSTALLED_LOADABLE_OBJ_LIBS = $(addprefix $(INSTALL_LIBDIR)/,$(LOADABLE_OBJ_LIBS))
all: $(LOADABLE_OBJ_LIBS) $(BUILD_LOADABLE_OBJ_LIBS)
install: $(INSTALLED_LOADABLE_OBJ_LIBS)
clean: clean.lo
clean.generated:
$(RM) -f $(patsubst $(CPP_PREFIX)%$(CPP_SUFFIX),%,$(notdir $(patsubst %.h,%.cpp,$(LOADABLE_OBJS_HEADER))))
clean.lo: profclean clean.generated
$(RM) -f $(wildcard *.o *.so *.done *.dll $(OTHER_LIB))
$(SO_PREFIX)%.so $(SO_PREFIX)%.dll: %.o $(CPP_PREFIX)%.o $(OTHER_LIB)
$(CXX) $^ -L. $(OTHER_LIB_LDFLAGS) -shared $(FINAL_LDFLAGS) -o $@
%.cpp: $(TOOLS_INCLUDE_DIR)/$(CPP_PREFIX)%$(CPP_SUFFIX).h
echo "#include \"$<\"" > $@.tmp
if [ "$(LO_NAMESPACE)" ]; then echo "using namespace $(LO_NAMESPACE);" >> $@.tmp; fi
echo "$(LOADABLE_OBJ_HOOK)($(CPP_PREFIX)$*$(CPP_SUFFIX));" >> $@.tmp
mv $@.tmp $@
$(OTHER_LIB)(%.o): %.o
$(AR) rU $(OTHER_LIB) $<
$(RANLIB) $(OTHER_LIB)
$(OTHER_LIB): $(OTHER_MEMBERS_O)
$(BUILD_LIBDIR)/%.so: %.so
install -m 755 $< $@
$(BUILD_LIBDIR)/%.dll: %.dll
install -m 755 $< $@
include $(JWBDIR)/make/rules.mk
include $(JWBDIR)/make/depend.mk

View file

@ -1,10 +0,0 @@
EXE = $(PROJECT)
ifneq ($(TARGET),mingw)
FINAL_LDFLAGS += -rdynamic
endif
include $(JWBDIR)/make/exe.mk
all:
clean: profclean

View file

@ -1,81 +0,0 @@
#PROJECT ?= $(shell cd $(TOPDIR); /bin/pwd | xargs notdir)
#define mcu_check_var
# ifeq ($($(1)),)
# $(error $(1) not specified)
# endif
#endef
#ifneq ($(MAKECMDGOALS),clean)
# ifeq ($(MCU_BOARD_MODEL),)
# $(error MCU_BOARD_MODEL not specified)
# endif
#
# ifeq ($(MCU_FLASH_OFFSET),)
# $(error MCU_FLASH_OFFSET not specified)
# endif
#
# ifeq ($(MCU_FLASH_SIZE),)
# $(error MCU_FLASH_SIZE not specified)
# endif
#endif
MCU_PRODUCT_TMPL_DIR ?= $(JWBDIR)/tmpl/products
ifneq ($(TARGET_PRODUCT),)
MCU_BOARD_MODEL_LC ?= $(TARGET_PRODUCT)
MCU_BOARD ?= $(TARGET_PRODUCT)
MCU_BOARD_LC ?= $(TARGET_PRODUCT)
else
MCU_BOARD_MODEL_LC ?= $(shell $(ECHO) $(MCU_BOARD_MODEL) | $(TR) '[A-Z]' '[a-z]')
MCU_BOARD ?= $(MCU_BOARD_MODEL)
MCU_BOARD_LC ?= $(shell $(ECHO) $(MCU_BOARD) | $(TR) '[A-Z]' '[a-z]')
endif
MCU_OPENOCD_CFG_DEFAULT_SEARCH_PATH ?= $(TOPDIR)/make
MCU_OPENOCD_CFG_SEARCH_PATH ?= $(MCU_OPENOCD_CFG_DEFAULT_SEARCH_PATH)
MCU_OPENOCD_CFG_FILE ?= $(info looking for $(MCU_OPENOCD_CFG_NAME) in $(MCU_OPENOCD_CFG_SEARCH_PATH)) $(call find_file,$(MCU_OPENOCD_CFG_NAME),$(MCU_OPENOCD_CFG_SEARCH_PATH))
MCU_OPENOCD_TELNET_PORT ?= 4444
MCU_OPENOCD_OPTS ?= -f $(MCU_OPENOCD_CFG_FILE) -c "echo \"Started by jw-build\"" -c "gdb_port 3333" -c "telnet_port $(MCU_OPENOCD_TELNET_PORT)" -c "tcl_port 6666"
MCU_OPENOCD_BIN ?= openocd
MCU_OPENOCD ?= $(MCU_OPENOCD_BIN) $(MCU_OPENOCD_OPTS) $(MCU_OPENOCD_EXTRA_OPTS)
# -- direct flash access
MCU_FLASH_BANK ?= 0
#MCU_FLASH_OFFSET ?= 0x0000000
#MCU_FLASH_SIZE ?= 0x5000
MCU_FLASH_FILE_BASE ?= $(MCU_BOARD_LC)-flash-$(MCU_FLASH_BANK_NAME)
MCU_FLASH_FILE_BIN ?= $(MCU_FLASH_FILE_BASE).bin
MCU_FLASH_FILE_HEX ?= $(MCU_FLASH_FILE_BASE).hex
MCU_FLASH_FETCH_BANK ?= $(MCU_FLASH_BANK)
MCU_FLASH_FETCH_FILE_BIN ?= $(MCU_FLASH_FILE_BIN)
MCU_FLASH_FETCH_FILE_HEX ?= $(MCU_FLASH_FILE_HEX)
MCU_FLASH_FETCH_OFFSET ?= $(MCU_FLASH_OFFSET)
MCU_FLASH_FETCH_SIZE ?= $(MCU_FLASH_SIZE)
MCU_FLASH_PUSH_BANK ?= $(MCU_FLASH_BANK)
MCU_FLASH_PUSH_FILE_BIN ?= $(MCU_FLASH_FILE_BIN)
MCU_FLASH_PUSH_FILE_HEX ?= $(MCU_FLASH_FILE_HEX)
MCU_FLASH_PUSH_OFFSET ?= $(MCU_FLASH_OFFSET)
MCU_FLASH_PUSH_SIZE ?= $(MCU_FLASH_SIZE)
# -- direct memory access
MCU_MEM_FETCH_FILE_BIN ?= $(MCU_MEM_FILE_BIN)
MCU_MEM_FETCH_FILE_HEX ?= $(MCU_MEM_FILE_HEX)
MCU_MEM_FETCH_OFFSET ?= $(MCU_FLASH_OFFSET)
MCU_MEM_FETCH_SIZE ?= $(MCU_FLASH_SIZE)
MCU_MEM_PUSH_FILE_BIN ?= $(MCU_MEM_FILE_BIN)
MCU_MEM_PUSH_FILE_HEX ?= $(MCU_MEM_FILE_HEX)
MCU_MEM_PUSH_OFFSET ?= $(MCU_FLASH_OFFSET)
MCU_MEM_PUSH_SIZE ?= $(MCU_FLASH_SIZE)
MCU_MEM_FILE_BASE ?= $(MCU_BOARD_LC)-mem-$(MCU_MEM_FETCH_OFFSET)-$(MCU_MEM_FETCH_SIZE)
MCU_MEM_FILE_BIN ?= $(MCU_MEM_FILE_BASE).bin
MCU_MEM_FILE_HEX ?= $(MCU_MEM_FILE_BASE).hex
ifneq ($(MCU_MEM_FETCH_OFFSET),)
MCU_OBJCOPY_FETCH_OPTS += --change-addresses $(MCU_MEM_FETCH_OFFSET)
endif

View file

@ -1,28 +0,0 @@
DIR_BASENAME = $(notdir $(CWD))
ifeq ($(EXE_BASENAME),)
ifneq ($(DIR_BASENAME),test)
EXE_BASENAME = $(EXE_BASENAME_PREFIX)$(DIR_BASENAME).elf
else
EXE_BASENAME = $(EXE_BASENAME_PREFIX)test-$(notdir $(shell cd ..; $(PWD))).elf
endif
endif
MCU_FLASH_PUSH_FILE_HEX ?= $(patsubst %.elf,%.hex,$(EXE_BASENAME))
EXE_MAP ?= $(patsubst %.elf,%.map,$(EXE_BASENAME))
# I think these (or something equivalent) should go somewhere here. Not cleaned
# up enough in modm builds to do it.
#include $(JWBDIR)/make/defs.mk
#include $(JWBDIR)/make/defs-cpp.mk
include $(JWBDIR)/make/mcu-defs.mk
include $(JWBDIR)/make/exe.mk
include $(JWBDIR)/make/mcu-flash.mk
all: $(MCU_FLASH_PUSH_FILE_HEX)
clean: mcu-exe.clean
mcu-exe.clean:
rm -f $(EXE_MAP)

View file

@ -1,45 +0,0 @@
.PHONY: flash-fetch flash-push flash-clean-fetch flash-clean-push
all:
flash-fetch: $(MCU_FLASH_FETCH_FILE_HEX)
flash-fetch-mem: $(MCU_MEM_FETCH_FILE_HEX)
clean: flash-clean-fetch
flash-clean-fetch:
$(RM) -f -- $(MCU_FLASH_FETCH_FILE_BIN) $(MCU_FLASH_FETCH_FILE_HEX) *.tmp
$(RM) -f -- $(MCU_MEM_FETCH_FILE_BIN) $(MCU_MEM_FETCH_FILE_HEX)
flash-clean-push:
$(RM) -f -- $(MCU_FLASH_PUSH_FILE_BIN) $(MCU_FLASH_PUSH_FILE_HEX) *.tmp
$(RM) -f -- $(MCU_MEM_PUSH_FILE_BIN) $(MCU_MEM_PUSH_FILE_HEX)
flash-clean: flash-clean-fetch flash-clean-push
$(MCU_FLASH_FETCH_FILE_BIN):
$(TIME) $(MCU_OPENOCD) -c "init" -c "reset init" -c "flash read_bank $(MCU_FLASH_FETCH_BANK) $@.tmp $(MCU_FLASH_FETCH_OFFSET) $(MCU_FLASH_FETCH_SIZE)" -c "exit"
$(MV) $@.tmp $@
$(MCU_MEM_FETCH_FILE_BIN):
$(MCU_OPENOCD) -c "init" -c "reset init" -c "dump_image $@.tmp $(MCU_MEM_FETCH_OFFSET) $(MCU_MEM_FETCH_SIZE)" -c "exit"
$(MV) $@.tmp $@
%.hex: %.elf
$(OBJCOPY) -O ihex $< $@.tmp
$(MV) $@.tmp $@
clean: flash-clean-hex
flash-clean-hex:
$(RM) -rf $(MCU_FLASH_PUSH_FILE_HEX)
%.hex: %.bin
$(OBJCOPY) $(MCU_OBJCOPY_FETCH_OPTS) -I binary -O ihex $< $@.tmp
$(MV) $@.tmp $@
flash-push: $(MCU_FLASH_PUSH_FILE_HEX)
# see http://openocd.org/doc/html/Flash-Programming.html
$(TIME) $(MCU_OPENOCD) -c "program $< verify reset exit $(MCU_FLASH_PUSH_OFFSET)"
%-flash-push:
MCU_FLASH_PUSH_FILE_HEX=$* make flash-push
openocd:
$(MCU_OPENOCD)
openocd-bg:
$(MCU_OPENOCD) &
openocd-reset-bg:
$(MCU_OPENOCD) -c "init" -c "reset init" &
openocd-kill:
killall $(MCU_OPENOCD_BIN)
openocd-telnet:
telnet localhost $(MCU_OPENOCD_TELNET_PORT)

View file

@ -1,3 +0,0 @@
include $(JWBDIR)/make/mcu-defs.mk
include $(JWBDIR)/make/topdir.mk
include $(JWBDIR)/make/mcu-flash.mk

View file

@ -1,4 +0,0 @@
all:
libpath:
@echo "export LD_LIBRARY_PATH=$(LD_LIBRARY_PATH)"
@echo "export PATH=.:$(PATH)"

View file

@ -1,27 +0,0 @@
IS_PLUGIN = true
USE_PLUGIN_VERSION_LIB ?= true
PLUGIN_API ?= $(notdir $(shell cd ..; $(PWD)))
PLUGIN_NAME ?= $(notdir $(shell $(PWD)))
PLUGIN_PREFIX ?= feedfs
ifneq ($(TARGET),mingw)
PLUGIN_SUFFIX ?= so
else
PLUGIN_SUFFIX ?= dll
endif
ifneq ($(PLUGIN_PREFIX),)
PLUGIN_PREFIX_ = $(PLUGIN_PREFIX)_
endif
PLUGIN_PREFIX_AND_API ?= $(PLUGIN_PREFIX_)$(PLUGIN_API)
PLUGIN ?= $(PLUGIN_PREFIX_AND_API)_$(PLUGIN_NAME).$(PLUGIN_SUFFIX)
FINAL_CPPFLAGS += -D PLUGIN_NAME=$(PLUGIN_NAME) -D PLUGIN_NAME_STR=\"$(PLUGIN_NAME)\"
ifeq ($(USE_PLUGIN_VERSION_LIB),true)
PLUGIN_VERSION_LIB_BASENAME = $(PLUGIN_PREFIX_AND_API)_version
PLUGIN_VERSION_LIB = $(BUILD_LIBDIR)/lib$(PLUGIN_VERSION_LIB_BASENAME).a
#INSTALLED_PLUGIN_VERSION_LIB = $(INSTALL_LIBDIR)/lib$(PLUGIN_VERSION_LIB_BASENAME).a
FINAL_LDFLAGS += -Wl,--whole-archive -l$(PLUGIN_VERSION_LIB_BASENAME) -Wl,--no-whole-archive
endif

View file

@ -1,17 +0,0 @@
include $(JWBDIR)/make/plugin-defs.mk
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/defs-cpp.mk
all: $(PLUGIN_VERSION_LIB)
install:
clean: clean.local
distclean:
version.o: version.cpp
$(CXX) $(FINAL_CXXFLAGS) $(FINAL_CPPFLAGS) -o $@ -c $<
clean.local:
$(RM) -f version.o
$(PLUGIN_VERSION_LIB): version.o
ar r $@ $<

View file

@ -1,22 +0,0 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/defs-cpp.mk
include $(JWBDIR)/make/debugger.mk
include $(JWBDIR)/make/ldlibpath.mk
include $(JWBDIR)/make/plugin-defs.mk
include $(JWBDIR)/make/rules.mk
include $(JWBDIR)/make/depend.mk
include $(JWBDIR)/make/backup.mk
include $(JWBDIR)/make/dev-utils.mk
FINAL_CXXFLAGS += -D_PLUGIN
FINAL_CFLAGS += -D_PLUGIN
all: build_LIB
install: install_LIB
clean: execlean localclean profclean
distclean: clean

View file

@ -1,5 +0,0 @@
PREREQ_INSTALLED_TARGETS += run gdb valgrind attach attach-strace libpath valgrind strace debug lldb echo-deps shortcut check-conf
ifneq ($(filter $(PREREQ_INSTALLED_TARGETS),$(MAKECMDGOALS)),)
PREREQ_BUILD += $(shell ls /etc/ld.so.conf.d | sed '/ld-.*.conf/ !d; s/ld-\(.*\).conf/\1/')
endif

View file

@ -1,26 +0,0 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
PATH_PROFILE ?= path-$(PROJECT).sh
EXE_SH =
ifeq ($(PROFILE),)
PROFILE = $(PATH_PROFILE)
endif
PROFILE += $(filter-out $(PATH_PROFILE),$(wildcard *.sh))
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/rules.mk
all: $(PROFILE)
install: install_files_PROFILE
clean: allclean localclean doneclean textclean clean.profile
path-%.sh:
@echo "export PATH=\$$PATH:$(INSTALL_EXEDIR)" > $@.tmp
mv $@.tmp $@
clean.profile:
/bin/bash $(JWB_SCRIPT_DIR)/scm.sh clean -f $(PROFILE)

View file

@ -1,30 +0,0 @@
all:
clean:
PROF_EXE_PATH ?= $(EXE_PATH)
CALLGRIND_OUT ?= callgrind.out
OPROF_OUT_DIR ?= oprofile-data
ifeq ($(USE_GPROF),true)
FINAL_CXXFLAGS += -pg
FINAL_CFLAGS += -pg
FINAL_LDFLAGS += -pg
clean: clean.gprof
endif
ifeq ($(COMPILER_SUITE),gcc)
ifeq ($(USE_GCOV),true)
FINAL_CXXFLAGS += -fprofile-arcs -ftest-coverage
FINAL_CFLAGS += -fprofile-arcs -ftest-coverage
FINAL_LDFLAGS += -fprofile-arcs -ftest-coverage
clean: clean.gcov
endif
endif
ifeq ($(COMPILER_SUITE),clang)
ifeq ($(USE_XRAY),true)
FINAL_CXXFLAGS += -fxray-instrument -fxray-instruction-threshold=1
FINAL_CFLAGS += -fxray-instrument -fxray-instruction-threshold=1
#FINAL_LDFLAGS += -fxray-instrument
endif
endif

View file

@ -1,84 +0,0 @@
# ---- callgrind
clean: clean.callgrind
callgrind: run-deps
$(RM) -f core.*
valgrind --tool=callgrind $(VALGRIND_OPTS) $(EXE_PATH) $(EXE_ARGS)
callgrind-noinst: run-deps
$(RM) -f core.*
valgrind --tool=callgrind --callgrind-out-file=$(CALLGRIND_OUT) --instr-atstart=no $(VALGRIND_OPTS) $(EXE_PATH) $(EXE_ARGS)
$(CALLGRIND_OUT): callgrind
kcachegrind: $(CALLGRIND_OUT)
kcachegrind $<
callgrind-startinst:
ps aux | grep callgrind | grep -v "grep\|make\|callgrind_control" | awk '{print $$2}' | xargs callgrind_control --instr=on
callgrind-stopinst:
ps aux | grep callgrind | grep -v "grep\|make\|callgrind_control" | awk '{print $$2}' | xargs callgrind_control --instr=off
callgrind-dump:
ps aux | grep callgrind | grep -v "grep\|make\|callgrind_control" | awk '{print $$2}' | xargs callgrind_control --dump
clean.callgrind:
$(RM) -f $(CALLGRIND_OUT)
# ---- oprofile
clean: clean.oprof
operf: | $(OPROF_OUT_DIR)
$(OPROF_OUT_DIR):
mkdir -p $@
oprof-setup:
echo 0 | sudo tee /proc/sys/kernel/kptr_restrict
echo 0 | sudo tee /proc/sys/kernel/perf_event_paranoid
oprof-callgraph.txt:
opreport --session-dir $(OPROF_OUT_DIR) --callgraph > $@.tmp
mv $@.tmp $@
oprof-view-callgraph-txt: oprof-callgraph.txt
less -S $<
oprof-callgraph.dot: oprof-callgraph.txt
cat $< | gprof2dot -f oprofile > $@.tmp
mv $@.tmp $@
oprof-callgraph.pdf: oprof-callgraph.dot
dot -Tpdf $< -o $@.tmp
mv $@.tmp $@
oprof-view-callgraph-pdf: oprof-callgraph.pdf
okular $<
oprof-view-callgraph-dot: oprof-callgraph.dot
xdot $<
#operf: operf.txt
#operf.txt:
# operf --session-dir $(OPROF_OUT_DIR) $(PROF_CMD)
#operf-view-txt: operf.txt
# less -S $<
#operf-callgraph.pdf: gmon.out
# operf $(PROF_EXE_PATH) | operf2dot | dot -Tpdf -o $@.tmp
# mv $@.tmp $@
#operf-pdf: operf-callgraph.pdf
clean.oprof:
$(RM) -rf $(OPROF_OUT_DIR) oprof-callgraph.txt oprof-callgraph.pdf oprof-callgraph.dot
# ---- gcov
clean.gcov:
$(RM) -f *.gcda *.gcov
# ---- gprof
clean: clean.gprof
gprof: gprof.txt
gprof.txt:
gprof $(PROF_EXE_PATH) > $@.tmp
mv $@.tmp $@
gprof-view-txt: gprof.txt
less -S $<
gprof-callgraph.pdf: gmon.out
gprof $(PROF_EXE_PATH) | gprof2dot | dot -Tpdf -o $@.tmp
mv $@.tmp $@
gprof-pdf: gprof-callgraph.pdf
gprof-view-callgraph-pdf: gprof-callgraph.pdf
okular $<
clean.gprof:
$(RM) -f gmon.out gprof.txt *.tmp gprof-callgraph.pdf

View file

@ -1,2 +0,0 @@
include $(JWBDIR)/make/profiler-defs.mk
include $(JWBDIR)/make/profiler-rules-run.mk

View file

@ -1,12 +0,0 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
CAP_PROJECT := $(shell echo $(PROJECT) | tr [a-z] [A-Z])
include $(JWBDIR)/make/defs.mk
$(CAP_PROJECT)_VERSION := $(VERSION)
$(CAP_PROJECT)_INSTALL_LIBDIR := $(INSTALL_LIBDIR)
$(CAP_PROJECT)_TOPDIR := $(TOPDIR)

View file

@ -1,3 +0,0 @@
all:
include $(JWBDIR)/make/projects-dir.mk

View file

@ -1,41 +0,0 @@
#
# SPDX-License-Identifier: LGPL-2.0-only
#
# Makefile for managing multiple software repositories in one tree
#
# (C) Copyright 2001-2025, Jan Lindemann <jan@janware.com>
#
# This is the top-level Makefile for a janware software build tree. It is
# provided under the terms of the GNU Lesser Public License, Version 2.
#
# Some of its targets download software from janware GmbH servers. For those,
# you will need a janware.com user account. Ask admin@janware.com if you want
# one, then define the JANWARE_USER = <janware user name> environment variable.
#
# Current documentation on how this Makefile is meant to be used can be found
# under https://janware.com/wiki/pub/en/sw/build/. Running "make help" might
# take you there semi-automatically.
#
PROJECTS_MAKEFILE_NAME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
JWBDIR_GIT_REMOTE ?= ssh://$(JANWARE_USER)@git.janware.com/srv/git/jan/proj/jw-build
JWBDIR ?= $(notdir $(JWBDIR_GIT_REMOTE))
PROJECTS_DIR_INCLUDE_MK = $(JWBDIR)/make/projects-dir-include.mk
ifndef JANWARE_USER
JANWARE_USER = $(shell id -un)
$(warning Assuming JANWARE_USER=$(JANWARE_USER) from id -un)
$(warning Explicitly set environment variable JANWARE_USER to turn off this warning!)
endif
-include local.mk
all:
include $(PROJECTS_DIR_INCLUDE_MK)
$(PROJECTS_DIR_INCLUDE_MK):
git clone $(JWBDIR_GIT_REMOTE) $(JWBDIR)
[ -L $(PROJECTS_MAKEFILE_NAME) ] || \
ln -sf `find $(JWBDIR) -type f -print0 | xargs -0 grep -l some-random-string-to-id-this-makefile` \
$(PROJECTS_MAKEFILE_NAME)

View file

@ -1,442 +0,0 @@
#
# SPDX-License-Identifier: GPL-2.0+
#
# Manage multiple software repositories in one tree
#
# (C) Copyright 2001-2019, Jan Lindemann <jan@janware.com>
#
# This is the top-level Makefile for a janware software build tree. It is
# provided under the terms of the GNU Lesser Public License, Version 2.
#
# Some of its targets download software from janware GmbH servers. For those,
# you will need a janware.com user account. Ask admin@janware.com if you want
# one, then define the JANWARE_USER = <janware user name> environment variable.
#
# Current documentation on how this Makefile is meant to be used can be found
# under https://janware.com/wiki/pub/en/sw/build/. Running "make help" might
# take you there semi-automatically.
#
# ------------ Makefile and environment variable definitions
.NOTPARALLEL:
-include local.mk
PROJECTS_MAKEFILE_NAME ?= $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
# -- Find JWBDIR
DEV_PROJECTS_DIR ?= .
JWBDIR_NAME ?= jw-build
JWBDIR_SEARCH_PATH ?= $(DEV_PROJECTS_DIR) $(BUILD_TOOLS_PREFIX)/opt/$(FLAVOUR_PATH_PREFIX)
JWBDIR ?= $(firstword $(wildcard $(addsuffix /$(JWBDIR_NAME),$(JWBDIR_SEARCH_PATH))))
JW_BUILD_BINDIR = $(JWBDIR)/bin
JWB_SCRIPT_DIR = $(firstword $(wildcard ./$(JWBDIR_NAME)/scripts $(JW_BUILD_BINDIR)) jwb-script-dir-not-found)
JW_BUILD_REMOTE_BINDIR = /opt/jw-build/bin
SHELL = /bin/bash -o pipefail +H
PROJECTS_TXT ?= projects.txt
JW_BUILD_VERBOSE ?= false
BASE_PKGS = git cvs make sudo time time xdg-utils python3
PREREQ_RELEASE ?= pull
# ------------ evaluate Makefile and environment variables
ifneq ($(wildcard $(PROJECTS_TXT)),)
PROJECTS ?= $(shell cat $(PROJECTS_TXT) | sed '/^ *\#/ d')
else
PROJECTS ?= $(shell ls -d */GNUmakefile */Makefile 2>/dev/null | sed 's%/[^/]*%%' | sort -u)
endif
ifeq ($(JW_BUILD_VERBOSE),true)
SSH_WRAPPER_TRACE ?= -x
endif
export JW_BUILD_VERBOSE
# ------------ external programs I
CWD := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
GET_OS_SH = /bin/bash $(firstword $(wildcard $(JWB_SCRIPT_DIR)/get-os.sh $(JW_BUILD_BINDIR)/get-os.sh) get-os-sh-not-found)
SSH_WRAPPER_SH := $(CWD)/ssh-wrapper.sh
EXCLUDES_FILE ?= exclude.txt
EXCLUDES_FILES = $(wildcard exclude-$(shell $(GET_OS_SH) name 2>/dev/null).txt exclude-$(shell $(GET_OS_SH) 2>/dev/null).txt $(EXCLUDES_FILE))
ifneq ($(EXCLUDES_FILES),)
EXCLUDE_FROM_BUILD += $(shell sed 's/\#.*//g' $(EXCLUDES_FILES))
endif
OFFLINE_PROJECTS ?= $(EXCLUDE_FROM_BUILD)
TEXT_FILES_CACHE ?= text-files.txt
ifndef JANWARE_USER
ifneq ($(wildcard CVS/Root),)
JANWARE_USER = $(shell sed '/^:ext/ !d; s/:ext:\([^@]\+\)@.*/\1/' CVS/Root)
$(warning Assuming JANWARE_USER=$(JANWARE_USER) from CVS/Root)
else
JANWARE_USER = $(shell id -un)
$(warning Assuming JANWARE_USER=$(JANWARE_USER) from id -un)
endif
$(warning Explicitly set environment variable JANWARE_USER to turn off this warning!)
endif
ifeq ($(JANWARE_USER),)
OFFLINE ?= true
else
export JANWARE_USER
endif
ifeq ($(OFFLINE),true)
UNAVAILABLE_TARGETS ?= pull.done update.done clone.done
else
UNAVAILABLE_TARGETS ?=
export CVSROOT = :ext:$(JANWARE_USER)@cvs.janware.com:/srv/cvs
endif
ifneq ($(JW_BUILD_SSH),)
export CVS_RSH := $(JW_BUILD_SSH)
else
export CVS_RSH := $(SSH_WRAPPER_SH)
endif
export GIT_SSH := $(CVS_RSH)
ifeq ($(filter pkg-%,$(MAKECMDGOALS)),)
export JW_BUILD_SSH_EXTRA_OPTS += -o StrictHostKeyChecking=no -o ControlMaster=auto -o ControlPath=/tmp/%r@jw-build:%h:%p -o ControlPersist=3m -l $(JANWARE_USER)
endif
ifneq ($(CLONE_FROM_USER),)
export PGIT_CLONE_FROM_USER = $(CLONE_FROM_USER)
else
export PGIT_CLONE_FROM_USER = $(JANWARE_USER)
endif
ifneq ($(OFFLINE_PROJECTS),)
export PGIT_IGNORE = $(OFFLINE_PROJECTS)
endif
ifneq ($(EXCLUDE_FROM_BUILD),)
PROJECTS_PY_EXTRA_BUILD_OPTS += --exclude "$(EXCLUDE_FROM_BUILD)"
endif
# non-interactive mode
INTERACTIVE ?= true
ifneq ($(INTERACTIVE),true)
DASH_Y := -y
endif
# ------------ external programs II
BROWSER ?= xdg-open
EDITOR ?= xdg-open
ifeq ($(TIME),)
TIME = $(shell which time) -p
endif
PROJECTS_PY = python3 $(JWB_SCRIPT_DIR)/projects.py --prefix $(shell pwd) $(PROJECTS_PY_EXTRA_OPTS)
PROJECTS_PY_BUILD = $(PROJECTS_PY) build $(PROJECTS_PY_EXTRA_BUILD_OPTS)
PGIT_SH = /bin/bash $(JWB_SCRIPT_DIR)/pgit.sh
PURGE_SH = /bin/bash $(firstword $(wildcard $(JWB_SCRIPT_DIR)/purge-stale-projects.sh $(JW_BUILD_BINDIR)/purge-stale-projects.sh) purge-not-found)
PKG_MANAGER_SH ?= /bin/bash $(firstword $(wildcard $(JWB_SCRIPT_DIR)/pkg-manager.sh $(JW_BUILD_BINDIR)/pkg-manager.sh) pkg-manager-not-found)
CREATE_PROJECT_SH ?= /bin/bash $(firstword $(wildcard $(JWB_SCRIPT_DIR)/jw-build-create-project.sh $(JW_BUILD_BINDIR)/jw-build-create-project.sh) jw-build-create-project-not-found)
LIST_VCS_FILES_SH = /bin/bash $(firstword $(wildcard $(JWB_SCRIPT_DIR)/scm.sh $(JW_BUILD_BINDIR)/scm.sh) scm-sh-not-found) ls-files
JW_PKG = /bin/bash $(firstword $(wildcard $(JWB_SCRIPT_DIR)/jw-pkg $(JW_BUILD_BINDIR)/jw-pkg) jw-pkg-not-found)
GIT_SRV_ADMIN_SH = JW_BUILD_SSH_EXTRA_OPTS="$(JW_BUILD_SSH_EXTRA_OPTS)" $(GIT_SSH) $(JANWARE_USER)@git.janware.com $(JW_BUILD_REMOTE_BINDIR)/git-srv-admin.sh
CVS_ADMIN_SH = JW_BUILD_SSH_EXTRA_OPTS="$(JW_BUILD_SSH_EXTRA_OPTS)" $(GIT_SSH) $(JANWARE_USER)@cvs.janware.com $(JW_BUILD_REMOTE_BINDIR)/cvs-admin.sh
# ------------ projects to be built
TARGET_PROJECTS = $(filter-out $(EXCLUDE_FROM_BUILD),$(PROJECTS))
BUILD_PROJECTS = $(shell $(PROJECTS_PY_BUILD) --build-order all $(TARGET_PROJECTS))
GIT_PROJECTS = $(patsubst %/,%,$(dir $(wildcard $(addsuffix /.git,$(BUILD_PROJECTS)))))
CVS_PROJECTS = $(patsubst %/,%,$(dir $(wildcard $(addsuffix /CVS,$(BUILD_PROJECTS)))))
# ------------ targets
# --- mandatory targets
all: $(filter-out $(UNAVAILABLE_TARGETS),pull.done)
$(TIME) $(PROJECTS_PY_BUILD) $@ $(TARGET_PROJECTS)
clean: clean-dirs
distclean: clean-all-dirs done.clean
install:
@echo
@echo " Target install is not supported by this Makefile."
@echo " Target pkg-rebuild-reinstall might be what you are looking for."
@echo
@exit 1
# --- build targets
rebuild: clean purge pull subdirs-all
subdirs-%:
FORCE_REBUILD_SUBDIRS=true make $*
# --- informative-only targets
help doc-project doc-module:
$(BROWSER) $(firstword $(shell sed '/https:/ !d; s%.*https%https%; s/ .*//' $(firstword $(MAKEFILE_LIST))))
status: $(SSH_WRAPPER_SH)
for p in $(CVS_PROJECTS); do test -f $$d/CVS || echo $$p; done
cvs status $(addsuffix VERSION,$(CVS_PROJECTS))
$(PGIT_SH) -uno status
build-order-%: $(filter-out $(UNAVAILABLE_TARGETS),pull.done)
$(PROJECTS_PY_BUILD) --build-order $* $(TARGET_PROJECTS) | sed 's/ */\n/g'
build-order: build-order-all
echo-build-deps:
@$(PROJECTS_PY) required-os-pkg --skip-excluded --flavours "build" $(TARGET_PROJECTS)
echo-install-deps:
@$(PROJECTS_PY) required-os-pkg --skip-excluded --flavours "build run" $(TARGET_PROJECTS)
echo-release-deps:
@$(PROJECTS_PY) required-os-pkg --skip-excluded --flavours "build run release" $(TARGET_PROJECTS)
echo-os:
@$(GET_OS_SH)
echo-projects:
@echo $(PROJECTS)
echo-target-projects:
@echo $(TARGET_PROJECTS)
echo-excludes:
@echo $(EXCLUDE_FROM_BUILD)
edit-%: | $(TEXT_FILES_CACHE)
$(EDITOR) $(shell grep "/$*$$" $(TEXT_FILES_CACHE))
distclean: clean.text-files-cache
clean.text-files-cache:
rm -f $(TEXT_FILES_CACHE)
list-files:
@realpath PROJECTS_MAKEFILE_NAME
@for p in $(BUILD_PROJECTS); do \
$(LIST_VCS_FILES_SH) -znf $$p | sed -z "s/^/$$p\//" | \
xargs -0 realpath ;\
done
$(TEXT_FILES_CACHE):
@make -s text-files-update
text-files-update:
make -s --no-print-directory list-files | tr '\n' '\0' | xargs -0 file -N | sed "/:.*text/I !d; s/:.*//" > $(TEXT_FILES_CACHE).tmp
mv $(TEXT_FILES_CACHE).tmp $(TEXT_FILES_CACHE)
text-files-update-all:
@PROJECTS_TXT= make text-files-update
text-files-list list-text-files: | $(TEXT_FILES_CACHE)
@cat $(TEXT_FILES_CACHE)
text-files-list-0 list-text-files-0: | $(TEXT_FILES_CACHE)
@cat $(TEXT_FILES_CACHE) | tr '\n' '\0'
cloc:
for p in $(GIT_PROJECTS); do \
git -C $$p submodule status | sed "s|^ *\([^ ]\+\) \+\([^ ]\+\) *.*|$$p/\2|" ;\
done > cloc-ignore.txt
for p in $(foreach s,dist include bin lib,$(addsuffix /$s,$(BUILD_PROJECTS))); do \
echo $$p >> cloc-ignore.txt ;\
done
cloc --exclude-list-file=cloc-ignore.txt $(BUILD_PROJECTS)
# --- package-related targets
pkg-manager-refresh:
$(PKG_MANAGER_SH) refresh $(DASH_Y)
pkg-install-build-deps:
$(PKG_MANAGER_SH) install $(DASH_Y) "$(BASE_PKGS) $(shell $(PROJECTS_PY) required-os-pkg --skip-excluded --flavours build $(TARGET_PROJECTS))"
pkg-install-release-deps:
$(PKG_MANAGER_SH) install $(DASH_Y) "$(BASE_PKGS) $(shell $(PROJECTS_PY) required-os-pkg --skip-excluded --flavours 'build run release' $(TARGET_PROJECTS))"
pkg-exclude-built-today:
touch $(EXCLUDES_FILE)
$(JW_PKG) built-today > built-today.tmp
cat $(EXCLUDES_FILE) built-today.tmp | sed 's/ */\n/g' | sort -u > $(EXCLUDES_FILE).tmp
mv $(EXCLUDES_FILE).tmp $(EXCLUDES_FILE)
distclean: clean.pkg-exclude-built-today
clean.pkg-exclude-built-today:
rm -f $(EXCLUDES_FILE).tmp built-today.tmp
pkg-exclude-installed:
$(JW_PKG) list-projects | while read p; do sed -i "s/^# *$$p$$/$$p/" $(EXCLUDES_FILE) ; done
pkg-list-groups:
@find . -name project.conf | xargs sed '/^ *group *=/!d; s/group *= *//; s/"//g' | sort -u
pkg-release-reinstall: $(PREREQ_RELEASE)
pkg-release-all:
/bin/bash ./packager-client/scripts/packager-client-2.sh
pkg-fetch-from-%:
ssh $* /opt/jw-base/bin/jw-pkg list -s > $(PROJECTS_TXT).tmp
mv $(PROJECTS_TXT).tmp $(PROJECTS_TXT)
pkg-init-%:
$(CREATE_PROJECT_SH) $*
pkg-%: $(filter-out $(UNAVAILABLE_TARGETS),pull.done)
$(PROJECTS_PY_BUILD) $@ $(TARGET_PROJECTS)
# --- generic cleanup targets
clean-dirs:
echo $(sort $(dir $(wildcard */*.done))) | xargs -r $(PROJECTS_PY_BUILD) clean
clean-all-dirs:
$(PROJECTS_PY_BUILD) clean $(PROJECTS)
make clean-dirs
purge: $(SSH_WRAPPER_SH)
ifneq ($(PURGE_SH),/bin/bash purge-not-found)
$(PURGE_SH)
endif
$(PROJECTS_TXT):
echo $(PROJECTS) | sed 's/ /\n/g; s%/%%g' > $@
done.clean:
rm -f *.done
# --- collab targets
list-maintainers: $(SSH_WRAPPER_SH)
$(GIT_SRV_ADMIN_SH) $@
update pull: purge cvs-update git-clone
touch pull.done
sync: pull push
sync-all: pull-all push-all
sync-%:
ssh $* make -C $(shell pwd) sync
pull-all: purge cvs-update git-clone git-pull-all
touch clone.done
touch pull.done
diff-all diff: $(SSH_WRAPPER_SH)
cvs diff -u; $(PGIT_SH) diff
cvs-diff: $(SSH_WRAPPER_SH)
cvs diff -u
cvs-update: $(SSH_WRAPPER_SH)
rm -f $@.done
make $@.done
git-push push: $(SSH_WRAPPER_SH)
$(PGIT_SH) push
git-push-all: $(SSH_WRAPPER_SH)
$(PGIT_SH) push --all --recurse-submodules=on-demand
git-diff: $(SSH_WRAPPER_SH)
$(PGIT_SH) diff
git-short-diff: $(SSH_WRAPPER_SH)
$(PGIT_SH) diff --shortstat
git-status:
$(PGIT_SH) status -uno
git-pull: $(SSH_WRAPPER_SH)
$(PGIT_SH) clone
git-pull-mini: $(SSH_WRAPPER_SH)
PGIT_CLONE_PROJECTS="$(patsubst %/.git,%,$(wildcard $(addsuffix /.git,$(shell make -s build-order))))" $(PGIT_SH) clone
git-pull-all: $(SSH_WRAPPER_SH)
$(PGIT_SH) pull --all
git-clone: $(SSH_WRAPPER_SH)
$(PGIT_SH) clone
touch clone.done
git-clone-%: $(SSH_WRAPPER_SH)
PGIT_CLONE_FROM_USER=$* $(PGIT_SH) clone
git-show-non-master-branches:
@$(PGIT_SH) branch 2>&1 | \
sed '/^#\|^*/!d; s/.*git -C //; s/ *branch *//; s/ *\* *//' | \
while read p; do \
read b ;\
if [ "$$b" != "master" ]; then \
echo " * $$p: $$b" ;\
fi ;\
done
# git-echo-link-<filename> returns a string functioning as hyperlink to
# matching files in git when embedded into a janware wiki or ticket.
git-echo-links-%: | $(TEXT_FILES_CACHE)
sed "/$*$$/!d; s%$(CWD)%%; s|^|\n \[\[jgit>/proj/$(JANWARE_USER)/|; s/$$/|$*\]\]\n/" $(TEXT_FILES_CACHE)
git-update-project-descriptions: $(SSH_WRAPPER_SH)
$(GIT_SRV_ADMIN_SH) -j update-descriptions all
git-pull-%: $(SSH_WRAPPER_SH) cvs-update.done
PGIT_CLONE_FROM_USER=$* $(PGIT_SH) clone
git-commit:
$(PGIT_SH) commit
git-conv-%: $(SSH_WRAPPER_SH)
[ -e $*/.git ] || { \
mv $* old/ ;\
if PROJECTS="$*" make clone; then \
sed -i "/^D\/$*\// d" CVS/Entries ;\
else \
mv old/$* . ;\
fi \
}
git-check-conv: $(SSH_WRAPPER_SH)
for p in `$(GIT_SRV_ADMIN_SH) -u jan -j list-personal-projects`; do \
make git-conv-$$p ;\
done
# --- rules
$(SSH_WRAPPER_SH): $(PROJECTS_MAKEFILE_NAME)
/bin/echo -e '#!/bin/bash $(SSH_WRAPPER_TRACE)\n\nexec /usr/bin/ssh $$JW_BUILD_SSH_EXTRA_OPTS "$$@"' > $@.tmp
chmod 700 $@.tmp
mv $@.tmp $@
ssh-wrapper: $(SSH_WRAPPER_SH)
clean.ssh-wrapper:
rm -f $(SSH_WRAPPER_SH)
distclean: clean.ssh-wrapper
define check_cvs_user
@if ! grep -q ":ext:$(JANWARE_USER)@" CVS/Root; then \
echo "Wrong username in CVS/Root, change that to: $(CVSROOT)" ;\
exit 1; \
fi
endef
cvsdir.done: $(SSH_WRAPPER_SH)
if [ ! -d CVS ]; then \
mkdir CVS && \
echo $(CVSROOT) > CVS/Root && \
echo proj > CVS/Repository && \
touch CVS/Entries ;\
fi
touch $@
cvs-update.done: cvsdir.done $(SSH_WRAPPER_SH)
$(check_cvs_user)
cvs update -dP Makefile $(shell $(CVS_ADMIN_SH) list-projects)
touch $@
update.done: purge
pull.done: $(filter-out $(UNAVAILABLE_TARGETS),cvs-update.done clone.done)
touch $@
clone.done: $(filter-out $(UNAVAILABLE_TARGETS),$(SSH_WRAPPER_SH))
$(PGIT_SH) clone
touch $@

View file

@ -1,119 +0,0 @@
ENV_PYTHONPATH := $(PYTHONPATH)
include $(JWBDIR)/make/py-version.mk
ifeq ($(DEVELOPMENT),true)
PY_SITE_PACKAGES_PATH := $(PREFIX)/python$(PYTHON_VERSION)/site-packages
else
PY_SITE_PACKAGES_PATH := $(shell $(PYTHON) -c "import site; print([d for d in site.getsitepackages() if d.find('/local/') == -1][0])")
endif
ifndef PY_PREREQ_BUILD
PY_PREREQ_BUILD := $(shell $(proj_query_cmd) pkg-requires --subsections jw -d ' ' -p --no-version build $(PROJECT))
endif
ifndef PY_PREREQ_BUILD_DIRS
PY_PREREQ_BUILD_DIRS := $(shell $(proj_query_cmd) proj-dir $(PY_PREREQ_BUILD))
endif
PY_MYPY ?= mypy --ignore-missing-imports --no-namespace-packages
PY_SRC_PY ?= $(wildcard *.py)
PY_ALL_PY = $(PY_SRC_PY)
ifneq ($(PYTHON_MAJOR),3)
PY_PYC = $(patsubst %.py,%.pyc,$(PY_ALL_PY))
else
PY_CPYTHON_PREFIX := $(shell $(PYTHON) -c "import sys; print('cpython-{}{}'.format(sys.version_info[0],sys.version_info[1]))")
PY_PYC = $(patsubst %.py,__pycache__/%.$(PY_CPYTHON_PREFIX).pyc,$(PY_ALL_PY))
endif
ifneq ($(PY_INSTALL_DIR),)
PY_INSTALL_DIR_PY ?= $(PY_INSTALL_DIR)
endif
# deduce PY_INSTALL_DIR_PY from working directory below .. python/
ifeq ($(PY_INSTALL_DIR_PY),)
PY_INSTALL_PKG_MOD ?= $(shell $(ECHO) $(CWD) | $(SED) 's%.*/python/%%; s%/.*%%')
PY_INSTALL_SUB_MOD ?= $(shell $(ECHO) $(CWD) | $(SED) "s%.*/$(PY_INSTALL_PKG_MOD)\(/\|$$\)%%")
ifneq ($(PY_INSTALL_SUB_MOD),)
PY_INSTALL_MOD ?= $(PY_INSTALL_PKG_MOD)/$(PY_INSTALL_SUB_MOD)
else
PY_INSTALL_MOD ?= $(PY_INSTALL_PKG_MOD)
endif
PY_MOD ?= $(subst /,.,$(PY_INSTALL_MOD))
PY_ALL_PY += __init__.py
PY_INSTALL_DIR_PY ?= $(ENV_PREFIX)$(PY_SITE_PACKAGES_PATH)/$(patsubst .,/,$(PY_INSTALL_MOD))
else
ifeq ($(PY_INSTALL_DIR_PY),)
$(error PY_INSTALL_DIR_PY is undefined)
endif
endif
ifeq ($(PYTHON_MAJOR),3)
PY_INSTALL_DIR_PYC ?= $(PY_INSTALL_DIR_PY)/__pycache__
else
PY_INSTALL_DIR_PYC ?= $(PY_INSTALL_DIR_PY)
endif
PY_INSTALL ?= true
PY_INSTALL_REG ?= true
ifneq ($(PY_INSTALL),true)
PY_INSTALL_REG = false
endif
PY_INSTALL_PYC ?= true
ifneq ($(PY_INSTALL_REG),true)
PY_INSTALL_PYC = false
endif
PY_INSTALL_DIRS ?= $(sort $(PY_INSTALL_DIR_PY) $(PY_INSTALL_DIR_PYC))
PY_INSTALLED_PY = $(addprefix $(PY_INSTALL_DIR_PY)/,$(sort $(PY_ALL_PY)))
ifeq ($(PY_INSTALL_PYC),true)
PY_INSTALLED_PYC = $(addprefix $(PY_INSTALL_DIR_PY)/,$(PY_PYC))
endif
ifeq ($(PY_INSTALL_REG),true)
PY_INSTALLED_REG = $(PY_INSTALLED_PY) $(PY_INSTALLED_PYC)
endif
ifeq ($(origin PYTHONPATH),undefined)
PYTHONPATH := $(call proj_query, pythonpath $(PROJECT) $(PY_PREREQ_RUN))
endif
#PYTHONPATH = $(subst $(space),,$(ENV_PYTHONPATH)$(foreach d,$(PY_MODULE_DIRS),:$(d)))
MYPYPATH = $(PYTHONPATH)
export PYTHONPATH MYPYPATH
# not used anywhere
#PY_PROJ_MODULE_DIRS ?= $(wildcard $(foreach subdir,/tools/python /src/python,$(addsuffix $(subdir),$(TOPDIR) $(PY_PREREQ_BUILD_DIRS))))
#PY_MODULE_DIRS ?= $(PY_PROJ_MODULE_DIRS)
#PY_MODULES ?= $(PY_PROJ_MODULES)
#PY_PROJ_MODULES += $(dir $(wildcard $(PY_MODULE_DIRS)/*/__init__.py))
ifneq ($(PY_DEFS_MK_INCLUDED),true)
all:
clean: pyc.clean
echo-py:
@echo "PYTHON = $(PYTHON)"
@echo "PY_INSTALL_DIR_PY = $(PY_INSTALL_DIR_PY)"
@echo "PROJECT = $(PROJECT)"
@echo "PY_SITE_PACKAGES_PATH = $(PY_SITE_PACKAGES_PATH)"
@echo "PY_MODULES = $(PY_MODULES)"
@echo "PYTHONPATH = $(PYTHONPATH)"
@echo "MYPYPATH = $(MYPYPATH)"
@echo "PY_INSTALL_MOD = $(PY_INSTALL_MOD)"
@echo "PY_INSTALL_SUB_MOD = $(PY_INSTALL_SUB_MOD)"
# not used anywhere"
#@echo "PY_PROJ_MODULE_DIRS = $(PY_PROJ_MODULE_DIRS)"
#@echo "PY_MODULE_DIRS = $(PY_MODULE_DIRS)"
pyc.clean:
$(RM) -rf $(wildcard *.pyc) __pycache__
libpath: py-libpath
py-libpath:
@echo export PYTHONPATH=$(PYTHONPATH)
@echo export MYPYPATH=$(MYPYPATH)
endif
PY_DEFS_MK_INCLUDED := true
include $(JWBDIR)/make/ldlibpath.mk

View file

@ -1,24 +0,0 @@
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/py-defs.mk
include $(JWBDIR)/make/dirs.mk
include $(JWBDIR)/make/dev-utils.mk
PY_INIT_TMPL = $(wildcard __init__.py.tmpl)
PY_SED_EXTRACT_EXPORT ?= /\(\(class\|def\)\s\+[a-zA-Z_].*\|^ *\S\+\s*=.*\)\# *export/ !d; /^\s*\#/ d; s/\(async\)* *\(class\|def\) *//; s/[(:=].*//
PY_INIT_FILTER ?= cat
#leftparen := (
#PY_EXPORT ?= $(shell sed '/\(class\|def\) ..*\# *export/ !d; s/\(class\|def\) *//; s/[$(leftparen):].*//' $(PY_SRC_PY))
all: $(PY_PYC)
install: install-dirs.done install-reg.done
clean: py.clean
distclean:
include $(JWBDIR)/make/py-rules.mk
__init__.py: $(PY_INIT_TMPL) $(filter-out __init__.py,$(PY_SRC_PY))
if [ "$(PY_INIT_TMPL)" ]; then cat "$(PY_INIT_TMPL)" > $@.tmp; else > $@.tmp; fi
/bin/bash +H $(JWB_SCRIPT_DIR)/python-tools.sh create-init -m $(PY_MOD) -e "$(PY_SED_EXTRACT_EXPORT)" \
$(filter-out __init__.py,$(PY_ALL_PY)) $(SUBDIRS_TO_ITERATE) | $(PY_INIT_FILTER) | tee -a $@.tmp
mv $@.tmp $@

View file

@ -1,14 +0,0 @@
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/py-defs.mk
include $(JWBDIR)/make/dirs.mk
include $(JWBDIR)/make/dev-utils.mk
include $(JWBDIR)/make/py-rules.mk
all:
install:
clean: py.clean
distclean:
ifeq ($(PY_RUN_CHECK_AFTER_BUILD),true)
all: check
endif

View file

@ -1,33 +0,0 @@
all:
py.clean:
$(RM) -f *.done *.pyc *.rep
/bin/bash $(JWB_SCRIPT_DIR)/scm.sh clean -f __init__.py
$(RM) -rf __pycache__ .mypy_cache
install-dirs.done:
$(INSTALL) -d -m $(PYJWBDIRMODE) -o $(PYJWBDIROWNER) -g $(PYJWBDIRGROUP) $(PY_INSTALL_DIRS)
touch $@
install-reg.done: install-dirs.done $(PY_INSTALLED_REG)
touch $@
$(PY_INSTALL_DIR_PY)/%.py: %.py
$(INSTALL) -p -m $(PYMODMODE) -o $(PYMODOWNER) -g $(PYMODGROUP) $< $@
ifneq ($(PYTHON_MAJOR),3)
%.pyc: %.py
else
__pycache__/%.$(PY_CPYTHON_PREFIX).pyc: %.py
endif
$(PYTHON) -c "import py_compile; py_compile.compile(\"$<\", doraise=True)"
ifeq ($(PYTHON_MAJOR),3)
$(PY_INSTALL_DIR_PY)/__pycache__/%.$(PY_CPYTHON_PREFIX).pyc: __pycache__/%.$(PY_CPYTHON_PREFIX).pyc
else
$(PY_INSTALL_DIR_PY)/%.pyc: %.pyc
endif
$(INSTALL) -p -m $(PYMODMODE) -o $(PYMODOWNER) -g $(PYMODGROUP) $< $@
check:
$(PY_MYPY) $(shell /bin/bash $(JWB_SCRIPT_DIR)/scm.sh ls-files | grep '\.py$$')

View file

@ -1,24 +0,0 @@
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/py-defs.mk
#include $(JWBDIR)/make/scripts-targets.mk
#include $(JWBDIR)/make/rules.mk
EXE ?= $(firstword $(wildcard main.py runme.py test.py *.py))
EXE_ARGS ?=
all:
install:
clean:
distclean:
test:
run:
$(PYTHON) $(EXE) $(EXE_ARGS)
run.sh:
echo -e "#!/bin/bash\n\nexport PYTHONPATH=$(PYTHONPATH)\nset -x\nexec $(PYTHON) $(EXE)" '"$$@"' > $@.tmp
chmod 755 $@.tmp
mv $@.tmp $@
clean-run-sh:
rm -f run.sh
clean: clean-run-sh

View file

@ -1,15 +0,0 @@
include $(JWBDIR)/make/defs.mk
EXE ?= $(shell $(PWD)).py
EXE_PATH ?= ./$(EXE)
all:
install:
clean:
distclean:
run:
$(PYTHON) -m $(shell echo $(patsubst %.py,%,$(EXE)) | sed 's%^\./%%; s%/%.%g') $(EXE_ARGS)
pyc.clean:
find . -name '*.pyc' -print0 | xargs -r -0 $(RM) -f

View file

@ -1,157 +0,0 @@
ifeq ($(USE_QT),true)
USE_X = true
FINAL_CPPFLAGS += -DQT_THREAD_SUPPORT
#ifeq ($(PKG_FORMAT),rpm)
#QT_VERSION ?= $(shell rpm -q --queryformat='%{VERSION}' --whatprovides qt)
#else
#QT_VERSION = $(shell dpkg -s libqtcore4 | sed '^CVersion:/ !d; s/Version: *//')
#endif
#QT_MAJOR_VERSION ?= $(shell echo $(QT_VERSION) | cut -d\. -f1)
#
#ifeq ($(QT_MAJOR_VERSION),2)
# QT_PREFIX ?= $(SYSTEM_LIBDIR)/qt2
# INCLUDE += -I$(QT_PREFIX)/include
#else
# ifeq ($(QT_MAJOR_VERSION),3)
# QT_PREFIX ?= $(SYSTEM_LIBDIR)/qt3
# INCLUDE += -I$(QT_PREFIX)/include
# else
# ifeq ($(QT_MAJOR_VERSION),4)
# #QT_PREFIX ?= $(HOME)/opt/qt4
# QT_PREFIX ?= /usr
# INCLUDE += -I$(QT_PREFIX)/include \
# $(addprefix -I$(QT_PREFIX)/include/, \
# Qt Qt3Support QtAssistant QtCore QtDesigner \
# QtGui QtNetwork QtOpenGL QtScript)
# endif
# endif
#endif
#
#ifeq ($(ARCH),x86)
# LD_LIB_PATH += $(QT_PREFIX)/lib
# QT_LDFLAGS += -L$(QT_PREFIX)/lib
#else
# ifeq ($(QT_MAJOR_VERSION),4)
# LD_LIB_PATH += $(QT_PREFIX)/lib
# QT_LDFLAGS += -L$(QT_PREFIX)/lib
# else
# LD_LIB_PATH += $(QT_PREFIX)/$(SYSTEM_LIBDIR_NAME)
# QT_LDFLAGS += -L$(QT_PREFIX)/$(SYSTEM_LIBDIR_NAME)
# endif
#endif
#
#MOC ?= $(QT_PREFIX)/bin/moc
#UIC ?= $(QT_PREFIX)/bin/uic
#RCC ?= $(QT_PREFIX)/bin/rcc
#
#ifdef REENTRANT
# ifneq ($(QT_MAJOR_VERSION),4)
# FINAL_LPPFLAGS += $(QT_LDFLAGS) -lqt-mt
# else
# # FINAL_LPPFLAGS += $(QT_LDFLAGS) -lQtSql -lQtNetwork -lQtOpenGL -lQtDesigner_debug -lQtGui_debug -lQtCore_debug
# FINAL_LPPFLAGS += $(QT_LDFLAGS) -lQtWebKit -lQt3Support -lQtSql -lQtNetwork -lQtOpenGL -lQtDesigner -lQtGui -lQtCore
# endif
#else
# ifneq ($(QT_MAJOR_VERSION),4)
# FINAL_LPPFLAGS += $(QT_LDFLAGS) -lqt
# else
# # FINAL_LPPFLAGS += $(QT_LDFLAGS) -lQtSql -lQtNetwork -lQtOpenGL -lQtDesigner_debug -lQtGui_debug -lQtCore_debug
# FINAL_LPPFLAGS += $(QT_LDFLAGS) -lQtWebKit -lQt3Support -lQtSql -lQtNetwork -lQtOpenGL -lQtDesigner -lQtGui -lQtCore
# endif
#endif
# ------------------------------- Qt defs
#Qt5Designer \
ifeq ($(QT_MAJOR_VERSION),5)
QT_MODULES ?= \
Qt5Concurrent \
Qt5Core \
Qt5DBus \
Qt5Gui \
Qt5Help \
Qt5Network \
Qt5OpenGLExtensions \
Qt5OpenGL \
Qt5PrintSupport \
Qt5Qml \
Qt5Quick \
Qt5QuickTest \
Qt5QuickWidgets \
Qt5Sensors \
Qt5Sql \
Qt5Svg \
Qt5Test \
Qt5UiTools \
Qt5WebEngine \
Qt5WebEngineWidgets \
Qt5WebKit \
Qt5WebKitWidgets \
Qt5Widgets \
Qt5X11Extras \
Qt5XmlPatterns \
Qt5Xml
else
QT_MODULES ?= \
Qt3Support \
QtCLucene \
QtCore \
QtDBus \
QtDeclarative \
QtDesignerComponents \
QtDesigner \
QtGui \
QtHelp \
QtMultimedia \
QtNetwork \
QtOpenGL \
QtScript \
QtScriptTools \
QtSql \
QtSvg \
QtTest \
QtUiTools \
QtWebKit \
QtXmlPatterns \
QtXml
endif
QT_BIN_PREFIX ?= $(strip $(shell pkg-config --variable=host_bins $(QT_MODULES)))
MOC ?= $(QT_BIN_PREFIX)/moc
UIC ?= $(QT_BIN_PREFIX)/uic
RCC ?= $(QT_BIN_PREFIX)/rcc
FINAL_LPPFLAGS += $(QT_LDFLAGS) $(shell pkg-config --libs $(QT_MODULES))
FINAL_INCLUDE += $(QT_LDFLAGS) $(shell pkg-config --cflags $(QT_MODULES))
CXXFLAGS += -D_QT_MAJOR_=$(QT_MAJOR_VERSION)
# ------------------------------- jw-build defs
UIFILES += $(wildcard *.ui)
RCCFILES += $(wildcard *.qrc)
ifneq ($(wildcard *.h),)
MOC_H_HC += $(shell grep -l Q_OBJECT $(wildcard *.h))
endif
MOC_H_UI += $(patsubst %.ui,ui_%.h,$(UIFILES))
MOC_H += $(sort $(MOC_H_HC) $(MOC_H_UI))
MOC_CPP += $(patsubst %.h,moc_%.cpp,$(notdir $(MOC_H_HC)))
# $(patsubst %.ui,moc_%.cpp,$(UIFILES)) \
RCC_CPP += $(patsubst %.qrc,rcc_%.cpp, $(RCCFILES))
ifeq ($(QT_MAJOR_VERSION),4)
UIC_H += $(patsubst %.ui,ui_%.h, $(UIFILES))
else
UIC_H += $(patsubst %.ui,%.h, $(UIFILES))
FINAL_CFLAGS += -fPIC
FINAL_CXXFLAGS += -fPIC
endif
UIC_CPP += $(patsubst %.ui,uic_%.cpp, $(UIFILES))
BUILD_OBJ += $(patsubst %.cpp,%.o,$(MOC_CPP))
BUILD_OBJ += $(patsubst %.cpp,%.o,$(UIC_CPP))
BUILD_OBJ += $(patsubst %.cpp,%.o,$(RCC_CPP))
endif # USE_QT

View file

@ -1,19 +0,0 @@
QMAKE_MAKEFILE = Makefile.qt
EXE ?= $(notdir $(shell $(PWD)))
QMAKE = qmake-qt5
all:
install:
clean: qmake.clean
distclean:
$(QMAKE_MAKEFILE):
$(QMAKE) -o $@.tmp
mv $@.tmp $@
all: $(QMAKE_MAKEFILE)
make -f $< $@
qmake.clean:
if [ -f $(QMAKE_MAKEFILE) ]; then make -f $(QMAKE_MAKEFILE) clean; fi
$(RM) -f $(QMAKE_MAKEFILE) *.tmp $(EXE) .qmake.stash

View file

@ -1,27 +0,0 @@
ifeq ($(QT_MAJOR_VERSION),3)
moc_%.cpp: %.h
$(MOC) -o $@ $<
else
moc_%.cpp: %.h
$(MOC) $(filter -D% -I%,$(strip $(FINAL_CXXFLAGS) $(FINAL_CPPFLAGS))) -o $@ $<
moc_%.cpp: include/%.h
$(MOC) $(filter -D% -I%,$(strip $(FINAL_CXXFLAGS) $(FINAL_CPPFLAGS))) -o $@ $<
endif
rcc_%.cpp: %.qrc
$(RCC) -o $@ $<
ifeq ($(QT_MAJOR_VERSION),4)
ui_%.h: %.ui
else
%.h: %.ui
endif
$(UIC) $< -o $@
ifeq ($(QT_MAJOR_VERSION),4)
uic_%.cpp: ui_%.h
echo -e "#include \"$<\"\n" > $@
else
uic_%.cpp: %.h %.ui
$(UIC) $*.ui -i $< -o $@
endif

View file

@ -1,20 +0,0 @@
all:
clean: mocclean uicclean rccclean
run-qt-%:
$(QT_PREFIX)/bin/$*
design:
$(QT_PREFIX)/bin/designer $(UIFILES)
assist: run-qt-assistant
#design: run-qt-designer
translation: run-qt-linguist
release: run-qt-lrelease
update: run-qt-lupdate
qm2ts: run-qt-qm2ts
qumake: run-qt-qmake
qt3to4: run-qt-qt3to4
qtconfig:run-qt-qtconfig
include $(JWBDIR)/make/qtversion.mk
include $(JWBDIR)/make/qt-rules.mk

View file

@ -1,12 +0,0 @@
# generic utility modules
# (c) 2005 jannet it services
# contact@jannet.de
# $Id$
USE_QT = true
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/defs-cpp.mk
include $(JWBDIR)/make/qt-defs.mk
include $(JWBDIR)/make/exe.mk
include $(JWBDIR)/make/qt.mk

View file

@ -1,10 +0,0 @@
# generic utility modules
# (c) 2005 jannet it services
# contact@jannet.de
# $Id$
USE_QT = true
QT_MAJOR_VERSION ?= 4
include $(JWBDIR)/make/plugin.mk
include $(JWBDIR)/make/qt.mk

View file

@ -1,8 +0,0 @@
# generic utility modules
# (c) 2005 jannet it services
# contact@jannet.de
# $Id$
include $(JWBDIR)/make/qtversion.mk
include $(JWBDIR)/make/so.mk
include $(JWBDIR)/make/qt.mk

View file

@ -1,14 +0,0 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
include $(JWBDIR)/make/qtversion.mk
include $(JWBDIR)/make/tools.mk
#include $(JWBDIR)/make/defs.mk
#include $(JWBDIR)/make/defs-cpp.mk
#ALL += $(BUILD_LIBDIR) $(PREREQ_DONE) $(BUILD_HDR) $(LOCAL_EXE_SH) $(MEMBERS)
#include $(JWBDIR)/make/rules.mk
#clean: objclean textclean localclean
#install: $(ALL)
include $(JWBDIR)/make/qt.mk

View file

@ -1,2 +0,0 @@
USE_QT ?= true
QT_MAJOR_VERSION ?= 5

View file

@ -1,166 +0,0 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/defs-cpp.mk
DIR_BASENAME = $(notdir $(CWD))
ifneq ($(TARGET_PRODUCT),)
EXE_BASENAME_PREFIX ?= $(TARGET_PRODUCT)-
endif
ifeq ($(EXE_BASENAME),)
ifneq ($(DIR_BASENAME),test)
EXE_BASENAME = $(EXE_BASENAME_PREFIX)$(DIR_BASENAME)
else
EXE_BASENAME = $(EXE_BASENAME_PREFIX)test-$(notdir $(shell cd ..; $(PWD)))
endif
endif
ifneq ($(EXE_BASENAME),)
ifneq ($(TARGET),mingw)
EXE ?= $(EXE_BASENAME)
SHORTCUT_SCRIPT ?= ./run.sh
else
EXE ?= $(EXE_BASENAME).exe
SHORTCUT_SCRIPT ?= run.bat
endif
endif
EXE_PATH ?= ./$(EXE)
CHECK_CONF_EXE ?= $(firstword $(wildcard $(PROJECTS_DIR)/valdi/bin/checkconf) checkconf)
FINAL_CFLAGS += -DEXE_NAME=\"$(EXE)\"
FINAL_CXXFLAGS += -DEXE_NAME=\"$(EXE)\"
# ----- linker scripts from tagged templates
#BUILD_LD_DIR = $(wildcard $(firstword $(call $(TAGGED_TMPL_DIRS),ld)))
#BUILD_LD_DIR = $(firstword $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach repo,$(TOPDIR)/tmpl/tagged $(JWBDIR)/tmpl/tagged,$(wildcard $(repo)/$(tag)/ld))))
#BUILD_LD_DIR = $(firstword $(wildcard $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach repo,$(TOPDIR)/tmpl/tagged $(JWBDIR)/tmpl/tagged,$(repo)/$(tag)/ld))))
#BUILD_LD_TMPL_DIRS ?= $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach repo,$(TOPDIR)/tmpl/tagged $(JWBDIR)/tmpl/tagged,$(repo)/$(tag)/ld))
#BUILD_LD_DIRS += $(wildcard $(BUILD_LD_TMPL_DIRS))
#FINAL_LDFLAGS += $(foreach d,$(BUILD_LD_DIRS),-L$(d) $(addprefix -T ,$(sort $(notdir $(wildcard $(d)/*.ld)))))
BUILD_LD_DIRS = $(call uniq,$(dir $(foreach d,$(BUILD_LD_CHECK_DIRS),$(wildcard $(d)/*.ld))))
LD_SCRIPTS = $(foreach d,$(BUILD_LD_DIRS),$(wildcard $(d)/*.ld))
FINAL_LDFLAGS += $(foreach d,$(BUILD_LD_DIRS),-L$(d) $(addprefix -T ,$(sort $(notdir $(wildcard $(d)/*.ld)))))
include $(JWBDIR)/make/profiler.mk
include $(JWBDIR)/make/rules.mk
include $(JWBDIR)/make/ldlibpath.mk
include $(JWBDIR)/make/path-rules.mk
include $(JWBDIR)/make/debugger.mk
EXE_ARGS += $(LOCAL_EXE_ARGS)
EXE_CMD ?= $(EXE_PATH) $(EXE_ARGS)
ifneq ($(wildcard local.supp),)
VALGRIND_OPTS += --suppressions=local.supp
endif
all:
install:
clean: runclean localclean
distclean:
run-deps: all
$(RM) -f core core.* vgcore vgcore.*
ifeq ($(TARGET),mingw)
run test: run-deps
@echo "wine $(EXE_CMD)"
@echo -e "set PATH=%PATH;$(DLL_PATH)\n" \
"$(EXE_CMD)" | wine cmd
start: run-deps
@echo "wine $(EXE_CMD)"
@echo -e "set PATH=%PATH;$(DLL_PATH)\n" \
"$(EXE_CMD)" | wine cmd &
else
run test: run-deps
$(EXE_CMD)
start: run-deps
$(EXE_CMD) &
which:
$(WHICH) $(EXE_PATH)
$(SHORTCUT_SCRIPT):
ifeq ($(TARGET),mingw)
echo "set PATH=%PATH;$(DLL_PATH)" > $@.tmp
echo "$(EXE_CMD)" >> $@.tmp
else
echo -e "#!/bin/bash\n\n$(RM) -f core.*\nexport LD_LIBRARY_PATH=$(LD_LIBRARY_PATH)\nexport PATH=$(PATH)\n$(EXE_CMD)" > $@.tmp
chmod 755 $@.tmp
endif
mv $@.tmp $@
shortcut: $(SHORTCUT_SCRIPT)
distclean.shortcut:
$(RM) -f $(SHORTCUT_SCRIPT)
distclean: distclean.shortcut
# unfortunately iwatch supports only one directory :-(
autorun:
make run &
iwatch -e close_write -c "$(HOME)/bin/run-once.sh make restart" \
$(BUILD_LIBDIR)
wait-stop:
while /sbin/checkproc $(notdir $(EXE_PATH)); do sleep 1; done
restart: stop wait-stop all start
valgrind: run-deps
valgrind $(VALGRIND_OPTS) $(EXE_CMD)
valkyrie: run-deps
valkyrie $(VALGRIND_OPTS) $(EXE_CMD)
efence: run-deps
ef $(EXE_CMD)
supp.tmp:
valgrind --gen-suppressions=all $(EXE_CMD) 2>$@.tmp; mv $@.tmp $@ || exit 0
vg-create-supp: supp.tmp
$(CAT) $< | $(JWB_SCRIPT_DIR)/parse-valgrind-suppressions.sh > local.supp
$(RM) -f supp.tmp
vg-add-supp:
$(CAT) | $(JWB_SCRIPT_DIR)/parse-valgrind-suppressions.sh >> local.supp
clean: vg-clean-supp
vg-clean-supp:
$(RM) -f local.supp
clean: clean.out
clean.out:
$(RM) -f run.out
snap:
killall -SIGUSR1 $(notdir $(EXE_PATH))
check-conf:
$(CHECK_CONF_EXE) -p --log-flags console \
$(shell echo $(EXE_ARGS) | sed 's/.*--config-file *//; s/ .*//')
endif
stop:
if /sbin/checkproc $(notdir $(EXE_PATH)); then killall $(notdir $(EXE_PATH)); fi
kill:
killall -9 $(notdir $(EXE_PATH))
abort:
killall -6 $(notdir $(EXE_PATH))
strace: $(EXE_PATH) $(EXE_BIN) run-deps
strace -f $(STRACE_EXTRA_OPTS) $(EXE_CMD)
tee: $(EXE_PATH) $(EXE_BIN) run-deps
$(EXE_CMD) 2>&1 | tee run.out
kcg:
kcachegrind callgrind.*

View file

@ -1,70 +0,0 @@
# === variable definitions
GET_OS_SH = sh $(JWB_SCRIPT_DIR)/get-os.sh
GENERATE_SELECTION = sh $(JWB_SCRIPT_DIR)/generate_selection.sh
UPLOAD_SH = sh $(JWB_SCRIPT_DIR)/upload.sh
DISTRIBUTOR = $(shell $(GET_OS_SH) | cut -d- -f1)
DISTRO_RELEASE = $(shell $(GET_OS_SH) | cut -d- -f2-)
UPLOAD_URL = root@pkg.janware.com:/srv/ftp/pub/packages/linux/$(DISTRIBUTOR)/$(DISTRO_RELEASE)/setup/descr
SELECTION = $(shell $(GENERATE_SELECTION) -s)-packages.txt
CHANNEL_LIST = $(shell $(GENERATE_SELECTION) -s)-channels.txt
# === targets
all: selection.done channels.done
install:
clean:
$(RM) -rf *.done *.tmp
distclean: clean
upload: upload.done
install-smart: rpm-install-smart.done
commit: selection.done channels.done
cvs add $(SELECTION) $(CHANNEL_LIST) || exit 0
cvs commit -m "o updated by target $@"
smart-update: smart-update.done
smart-config: smart-config.done
write: selection.done channels.done
include $(JWBDIR)/make/defs.mk
# === rules
selection.done: $(JWBDIR)/make/smart-selection.mk
rpm -qa --queryformat '%{NAME}\n' | sort -u | \
$(SED) '/gpg-pubkey/ d' > $(SELECTION).tmp
mv $(SELECTION).tmp $(SELECTION)
touch $@
channels.done: $(JWBDIR)/make/smart-selection.mk
smart channel --show | $(SED) '/\[rpm-sys\]/,+3 d' > $(CHANNEL_LIST)
touch $@
upload.done: selection.done
sh $(UPLOAD_SH) $(SELECTION) $(CHANNEL_LIST) $(UPLOAD_URL)
$(CVS_RSH) -l root pkg.janware.com $(UPDATE_REPO_SH)
touch $@
rpm-install-smart.done:
if ! rpm -q smart >/dev/null 2>&1 ; then \
wget --http-user=$(JANWARE_USER) https://janware.com:/files/packages/linux/$(DISTRIBUTOR)/$(DISTRO_RELEASE)/rpm/i686/smart.rpm; \
sudo rpm -U smart.rpm; \
sudo smart update; \
sudo smart channel --remove-all; \
fi
touch $@
smart-update.done:
sudo smart update || exit 0
touch $@
%-packages.txt-install: smart-update.done
$(CAT) $*-packages.txt | xargs sudo smart install -y
%-channels.txt-replace:
sudo smart channel -y --remove-all
sudo smart channel -y --add $*-channels.txt
sudo smart update || exit 0
smart-config.done:
sudo smart config --set rpm-check-signatures=false
sudo smart config --set remove-packages=false
touch $@

View file

@ -1,24 +0,0 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/defs-cpp.mk
LDFLAGS += -shared
BUILD_SHOBJS = $(addprefix $(BUILD_LIBDIR)/, $(SHOBJS))
SHOBJS = $(patsubst %.cpp,$(SO_PREFIX)%.so,$(patsubst %.cc,$(SO_PREFIX)%.so,$(patsubst %.c,$(SO_PREFIX)%.so,$(SRC_ALL_CPP))))
INSTALLED_SHOBJS += $(addprefix $(INSTALL_LIBDIR)/,$(SHOBJS))
INSTALLED_ALL_LIBS += $(INSTALLED_SHOBJS)
include $(JWBDIR)/make/ldlibpath.mk
include $(JWBDIR)/make/debugger.mk
include $(JWBDIR)/make/rules.mk
all: $(SHOBJS) $(BUILD_SHOBJS)
clean: objclean textclean localclean profclean
install: $(ALL) install_dir_LIB installso
$(BUILD_LIBDIR)/%.so: %.so
install -m 755 $< $@

View file

@ -1,30 +0,0 @@
CHORD := $(firstword $(shell which chordpro chordii chord))
CHOPRO = $(wildcard *.chopro *.cho *.CHOPRO)
CHOPRO_PDF = $(addsuffix .pdf,$(basename $(CHOPRO)))
CHOPRO_PS = $(addsuffix .ps,$(basename $(CHOPRO)))
all: $(CHOPRO_PDF)
install:
clean: clean.chopro clean.tmp
distclean:
pdf: $(CHOPRO_PDF)
kpdf: $(CHOPRO_PDF)
kpdf $<
%.pdf: %.ps
ps2pdf $< $@.tmp
mv $@.tmp $@
%.ps: %.chopro
$(CHORD) $< > $@.tmp
mv $@.tmp $@
clean.chopro:
$(RM) -f $(CHOPRO_PS) $(CHOPRO_PDF)
clean.tmp:
$(RM) -f *.tmp
view: $(CHOPRO_PDF)
okular $<

View file

@ -1,33 +0,0 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
VERSION ?= 0.0.0.0-dev
DIST_VERSION ?= $(VERSION)
#USE_CFG_XXX_MK ?= false
USE_PROJECT_LIB ?= false
DEVELOPMENT ?= true
PROJECTS_DIR := $(dir $(lastword $(MAKEFILE_LIST)))/../..
ifeq ($(PROJECT),)
PROJECT = $(notdir $(shell $(PWD)))
endif
ifeq ($(PREFIX),)
PREFIX = $(HOME)/opt/$(PROJECT)
endif
include $(JWBDIR)/make/run.mk
include $(JWBDIR)/make/depend.mk
all: $(EXE)
install: $(INSTALLED_EXE) $(INSTALLED_EXE_BIN)
run: all.dirs $(EXE) $(EXE_BIN)
strace: $(EXE) $(EXE_BIN)
#$(LIB_SO): $(LIB_A)
#$(EXE): $(LIB_SO)
all.dirs:
clean: execlean localclean clean.standalone-exe
clean.standalone-exe:

View file

@ -1,34 +0,0 @@
include $(JWBDIR)/make/defs.mk
PROFILE_SH = profile-$(PROJECT).sh
all: $(PROFILE_SH)
clean: clean.std-tools
install: $(PROFILE_SH) install.std-tools.done
distclean: clean
$(PROFILE_SH): $(LOCAL_MKFILES)
echo '#!/bin/sh' > $@.tmp
echo "if [ \"\$$PATH\" ]; then" >> $@.tmp
echo " PATH=\$$PATH:$(INSTALL_EXEDIR)" >> $@.tmp
echo "else" >> $@.tmp
echo " PATH=$(INSTALL_EXEDIR)" >> $@.tmp
echo "fi" >> $@.tmp
echo "if [ \"\$$LD_LIBRARY_PATH\" ]; then" >> $@.tmp
echo " LD_LIBRARY_PATH=\$$LD_LIBRARY_PATH:$(INSTALL_LIBDIR)" >> $@.tmp
echo "else" >> $@.tmp
echo " LD_LIBRARY_PATH=$(INSTALL_LIBDIR)" >> $@.tmp
echo "fi" >> $@.tmp
echo "export PATH LD_LIBRARY_PATH" >> $@.tmp
mv $@.tmp $@
clean.std-tools:
$(RM) -f $(PROFILE_SH) *.done
install.std-tools.done: install.std-dir.done
$(INSTALL) -p -o $(PROFILEOWNER) -g $(PROFILEGROUP) -m $(PROFILEMODE) $(PROFILE_SH) $(PROFILE_DIR)
touch $@
install.std-dir.done:
mkdir -p $(PROFILE_DIR)
touch $@

View file

@ -1,16 +0,0 @@
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/defs-dirs.mk
all:
clean: clean.var
distclean: clean.var distclean.var
all install clean distclean test:
ifneq ($(SUBDIRS_TO_ITERATE),)
set -e; for dir in $(SUBDIRS_TO_ITERATE); do make -C $$dir $@; done
endif
clean.var:
$(RM) -rf $(CLEAN)
distclean.var:
$(RM) -rf $(DISTCLEAN)

View file

@ -1,44 +0,0 @@
ifneq ($(DEVELOPMENT),true)
SUBTREE_OWNER ?= root
SUBTREE_GROUP ?= root
SUBTREE_MODE ?= 0644
SUBTREE_DIROWNER ?= root
SUBTREE_DIRGROUP ?= root
SUBTREE_DIRMODE ?= 0755
else
SUBTREE_OWNER ?= $(shell id -un)
SUBTREE_GROUP ?= $(shell id -gn)
SUBTREE_MODE ?= 0644
SUBTREE_DIROWNER ?= $(shell id -un)
SUBTREE_DIRGROUP ?= $(shell id -gn)
SUBTREE_DIRMODE ?= 0755
SUBTREE_INSTALL_PREFIX ?= /srv/www/proj/$(PROJECT)
endif
#ifeq ($(SUBTREE_SRC),)
# SUBTREE_SRC = $(shell find .)
#endif
SUBTREE_DIRS += $(shell for f in `git ls-files . 2>/dev/null || find | sed 's%/[^/]\+$$%%' | sort -u | grep -v "Makefile\|GNUmakefile"`; do if [ -d "$$f" ]; then echo $$f; fi; done)
SUBTREE_FILES += $(shell for f in `git ls-files . 2>/dev/null || find | grep -v "Makefile\|GNUmakefile"`; do if [ -f "$$f" ]; then echo $$f; fi; done)
INSTALLED_SUBTREE_DIRS = $(addprefix $(ENV_PREFIX)$(SUBTREE_INSTALL_PREFIX)/,$(SUBTREE_DIRS))
INSTALLED_SUBTREE_FILES = $(addprefix $(ENV_PREFIX)$(SUBTREE_INSTALL_PREFIX)/,$(SUBTREE_FILES))
ifndef SUBTREE_MK_INCLUDED
SUBTREE_MK_INCLUDED = true
include $(JWBDIR)/make/defs.mk
all:
install: $(INSTALLED_SUBTREE_DIRS) $(INSTALLED_SUBTREE_FILES)
clean:
distclean:
$(INSTALLED_SUBTREE_DIRS):
$(INSTALL) -d -o $(SUBTREE_DIROWNER) -g $(SUBTREE_DIRGROUP) -m $(SUBTREE_DIRMODE) $@
$(ENV_PREFIX)$(SUBTREE_INSTALL_PREFIX)/%: % | $(INSTALLED_SUBTREE_DIRS)
$(INSTALL) -p -o $(SUBTREE_OWNER) -g $(SUBTREE_GROUP) -m $(SUBTREE_MODE) $< $@
endif # SUBTREE_MK_INCLUDED

View file

@ -1,23 +0,0 @@
JWBDIR = $(HOME)/local/src/cvs.main/proj/jw-build
include $(JWBDIR)/make/defs.mk
GENERATE_SELECTION = $(JWB_SCRIPT_DIR)/generate_selection.sh
SUSE_RELEASE = 10.1
UPLOAD_URL = root@pkg.janware.com:/srv/dav/pub/packages/linux/suse/$(SUSE_RELEASE)/setup/descr
UPLOAD_SH = $(JWB_SCRIPT_DIR)/upload.sh
SELECTION = $(shell sh $(GENERATE_SELECTION) -s).sel
all: $(SELECTION)
upload: upload.done
$(SELECTION): $(GENERATE_SELECTION)
sh $(GENERATE_SELECTION)
clean:
$(RM) -rf $(SELECTION) upload.done
upload.done: $(SELECTION)
sh $(UPLOAD_SH) $(SELECTION) $(UPLOAD_URL)
$(CVS_RSH) -l root pkg.janware.com $(UPDATE_REPO_SH)
touch $@

View file

@ -1,59 +0,0 @@
SVG_GENERATE_FORMATS ?= png svg
SVG ?= $(filter-out copied-%,$(wildcard *.svg))
COPIED_SVG = $(addprefix copied-,$(notdir $(SVG)))
INKSCAPE_VERSION = $(shell export -n DISPLAY; inkscape -V 2>&1 | sed '/Inkscape/ !d; s/Inkscape *\([0-9.]\+\) .*/\1/')
INKSCAPE_VERSION_MAJOR = $(word 1,$(subst ., ,$(INKSCAPE_VERSION)))
ifeq ($(INKSCAPE_VERSION_MAJOR),1)
INKSCAPE_EXPORT_PNG = --export-filename
else
INKSCAPE_EXPORT_PNG = --export-png
endif
GENERATED_ICON_WIDTHS += 16 32 48 64 72 96 128 144 168 192
GENERATED_WIDTHS ?= $(GENERATED_ICON_WIDTHS) $(GENERATED_EXTRA_WIDTHS)
ifneq ($(filter png,$(SVG_GENERATE_FORMATS)),)
GENERATED_WIDTHS_PNG ?= $(GENERATED_WIDTHS)
GENERATED_PNG ?= \
$(foreach w, $(GENERATED_WIDTHS_PNG),$(patsubst %.svg,%-$w.png,$(notdir $(SVG))))
GENERATED_IMAGES += $(GENERATED_PNG)
endif
ifneq ($(filter ico,$(SVG_GENERATE_FORMATS)),)
GENERATED_WIDTHS_ICO ?= 16 32
GENERATED_ICO ?= \
$(foreach w, $(GENERATED_WIDTHS_ICO),$(patsubst %.svg,%-$w.ico,$(notdir $(SVG))))
GENERATED_IMAGES += $(GENERATED_ICO)
endif
ifneq ($(filter pdf,$(SVG_GENERATE_FORMATS)),)
GENERATED_PDF ?= $(patsubst %.svg,%.pdf,$(notdir $(SVG)))
GENERATED_IMAGES += $(GENERATED_PDF)
endif
ifneq ($(filter svg,$(SVG_GENERATE_FORMATS)),)
IMAGES += $(notdir $(SVG))
endif
all: $(GENERATED_IMAGES)
install:
clean: clean.images
distclean:
clean.images:
$(RM) -f $(GENERATED_IMAGES) $(COPIED_SVG)
%.png: $(COPIED_SVG)
export -n DISPLAY; inkscape -w $(shell echo $* | sed 's/.*-//') \
$(INKSCAPE_EXPORT_PNG)=$@ copied-$(shell echo $* | sed 's/-[0-9]\+$$//').svg
%.pdf: copied-%.svg
export -n DISPLAY; inkscape --export-filename="$@" $<
copied-%.svg: $(SVG)
@echo $^
cp $(filter %$*.svg, $^) $@.tmp
mv $@.tmp $@
%.ico: %.png
icotool -o $@ -c $<

View file

@ -1,209 +0,0 @@
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/defs-cpp.mk
include $(JWBDIR)/make/dev-utils.mk
ifeq ($(SWIG_TARGET),php)
SWIG_LANG ?= php
SWIG_TARGET_EXT ?= php
ifeq ($(OS_NAME),ubuntu)
PHP_MAJOR ?= 5
else
PHP_MAJOR ?= $(shell php-config --version | cut -d. -f1)
endif
PHP ?= php$(PHP_MAJOR)
#PHP ?= $(firstword $(notdir $(wildcard /usr/share/php*)))
# Funny: swig --help states -php7 is for PHP8 and later
SWIG_OPTS ?= -php7 -DJW_PHP_MAJOR=$(PHP_MAJOR)
SWIG_MODULE_TARGET_DIR = $(ENV_PREFIX)/usr/share/$(PHP)
#SWIG_PHP_INCLUDE_DIR = /usr/include/$(PHP)
#SWIG_PHP_INCLUDE_SUBDIRS = . main TSRM Zend
SWIG_PHP_MODULE_INI = $(SWIG_MODULE).ini
SWIG_PHP_MODULE_INI_DIR = $(ENV_PREFIX)/etc/$(PHP)/conf.d
#SWIG_PHP_NAMESPACE ?= $(SWIG_MODULE)
SWIG_GENERATED_EXTRA += $(SWIG_PHP_MODULE_INI)
SWIG_INSTALLED_EXTRA = $(SWIG_PHP_MODULE_INI_DIR)/$(SWIG_PHP_MODULE_INI)
ifneq ($(SWIG_PHP_NAMESPECE),)
SWIG_POSTPROCESS += sed -i -e "s/^<?php/<?php namespace $(SWIG_PHP_NAMESPACE);/" $(SWIG_MODULE_TARGET)
endif
SWIG_CLEAN += php_$(SWIG_MODULE_H) $(SWIG_PHP_MODULE_INI)
FINAL_INCLUDE += $(shell php-config --includes)
INSTALL_LIBDIR = $(ENV_PREFIX)/usr/$(SYSTEM_LIBDIR_NAME)/$(PHP)/extensions
FINAL_CFLAGS += -Wno-unused-label -Wno-unused-function
FINAL_CXXFLAGS += -Wno-unused-label -Wno-unused-function
all:
$(SWIG_PHP_MODULE_INI_DIR)/%.ini: %.ini
mkdir -p $(dir $@)
$(INSTALL) -p -o $(APACHE_CONFOWNER) -g $(APACHE_CONFGROUP) -m $(APACHE_CONFMODE) $< $@
%.ini:
echo extension=$*.so > $@.tmp
mv $@.tmp $@
else ifeq ($(SWIG_TARGET),android)
SWIG_LANG ?= android
SWIG_TARGET_EXT ?= java
SWIG_OPTS ?= -android
else ifeq ($(SWIG_TARGET),python)
include $(JWBDIR)/make/py-defs.mk # for $(PYTHON), $(PY_SITE_PACKAGES_PATH)
PYTHON_FULL_VERSION ?= $(basename $(lastword $(shell $(PYTHON) --version 2>&1)))
PYTHON_MAJOR_VERSION ?= $(basename $(PYTHON_FULL_VERSION))
PYTHON_MINOR_VERSION ?= $(patsubst .%,%,$(suffix $(PYTHON_FULL_VERSION)))
SWIG_LANG ?= python
SWIG_TARGET_EXT ?= py
SWIG_OPTS ?= -python
#SWIG_MODULE_TARGET_DIR = $(ENV_PREFIX)$(SYSTEM_LIBDIR)/python$(PYTHON_MAJOR_VERSION).$(PYTHON_MINOR_VERSION)/site-packages
SWIG_MODULE_TARGET_DIR = $(ENV_PREFIX)$(PY_SITE_PACKAGES_PATH)
SWIG_MODULE_SO ?= _$(SWIG_MODULE).so
ifneq ($(PYTHON_MAJOR_VERSION),3)
SWIG_CLEAN += $(wildcard *.pyc)
SWIG_PY_MODULE_PYC ?= $(patsubst %.py,%.pyc,$(SWIG_MODULE_TARGET))
else
SWIG_CLEAN += $(wildcard __pycache__)
SWIG_PY_MODULE_PYC ?= $(patsubst %.py,__pycache__/%.$(PY_CPYTHON_PREFIX).pyc,$(SWIG_MODULE_TARGET))
endif
SWIG_GENERATED_EXTRA += $(SWIG_PY_MODULE_PYC)
SWIG_INSTALLED_EXTRA += $(SWIG_MODULE_TARGET_DIR)/$(SWIG_PY_MODULE_PYC)
FINAL_INCLUDE += $(shell $(PKG_CONFIG_EXE) --cflags python-$(PYTHON_VERSION))
FINAL_LDFLAGS += $(shell $(PKG_CONFIG_EXE) --libs python-$(PYTHON_VERSION))
INSTALL_LIBDIR = $(SWIG_MODULE_TARGET_DIR)
all:
ifneq ($(PYTHON_MAJOR_VERSION),3)
%.pyc: %.py
else
__pycache__/%.$(PY_CPYTHON_PREFIX).pyc: %.py
endif
$(PYTHON) -c "import py_compile; py_compile.compile(\"$<\", doraise=True)"
ifeq ($(PYTHON_MAJOR_VERSION),3)
$(SWIG_MODULE_TARGET_DIR)/__pycache__/%.$(PY_CPYTHON_PREFIX).pyc: __pycache__/%.$(PY_CPYTHON_PREFIX).pyc
mkdir -p $(dir $@)
else
$(SWIG_MODULE_TARGET_DIR)/%.pyc: %.pyc
endif
$(INSTALL) -p -m $(SWIG_TARGETMODE) -o $(SWIG_TARGETOWNER) -g $(SWIG_TARGETGROUP) $< $@
else ifeq ($(SWIG_TARGET),java)
JAVA_VERSION ?= $(basename $(lastword $(shell java -version 2>&1 | sed '/version/ !d')))
JAVA_MAJOR_VERSION ?= $(basename $(JAVA_VERSION))
JAVA_MINOR_VERSION ?= $(patsubst .%,%,$(suffix $(JAVA_VERSION)))
SWIG_LANG ?= java
SWIG_TARGET_EXT ?= java
SWIG_OPTS ?= -java
SWIG_MODULE_TARGET_DIR = /usr/share/java
SWIG_MODULE_SO ?= $(SWIG_MODULE).so
SWIG_CLEAN += $(wildcard *.java)
#SWIG_PY_MODULE_PYC ?= $(patsubst %.py,%.pyc,$(SWIG_MODULE_TARGET))
#SWIG_GENERATED_EXTRA += $(SWIG_PY_MODULE_PYC)
#SWIG_INSTALLED_EXTRA += $(SWIG_MODULE_TARGET_DIR)/$(SWIG_PY_MODULE_PYC)
FINAL_INCLUDE += -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
#FINAL_LDFLAGS +=
INSTALL_LIBDIR = $(SWIG_MODULE_TARGET_DIR)
else ifeq ($(SWIG_TARGET),perl)
PERL ?= perl
SWIG_LANG ?= perl
SWIG_TARGET_EXT ?= pm
SWIG_OPTS ?= -perl
PERL_VERSION ?= $(patsubst v%,%,$(shell $(PERL) -e 'print $$^V;'))
# /usr/lib/perl is a symlink to /usr/lib/perl5 for yocto, so give this a preference
PERL_BASE_DIR ?= $(firstword $(wildcard $(addprefix $(BUILD_LIBS_PREFIX),/usr/lib64/perl5 /usr/lib/perl /usr/lib/perl5 /usr/lib/perl-native/perl)))
PERL_CORE_DIR ?= $(firstword $(wildcard $(addprefix $(PERL_BASE_DIR)/,$(PERL_VERSION)/$(ARCH)-linux-thread-multi/CORE $(PERL_VERSION)/CORE CORE)))
PERL_VENDOR_DIR ?= $(PERL_BASE_DIR)/vendor_perl/$(PERL_VERSION)/$(ARCH)-linux-thread-multi
FINAL_INCLUDE += -I$(PERL_CORE_DIR)
SWIG_CLEAN += $(wildcard *.$(SWIG_TARGET_EXT))
INSTALL_LIBDIR = $(ENV_PREFIX)$(PERL_VENDOR_DIR)/auto/$(SWIG_MODULE)
SWIG_MODULE_TARGET_DIR = $(ENV_PREFIX)$(PERL_VENDOR_DIR)
else
$(error SWIG_TARGET=$(SWIG_TARGET) undefined or unknown)
endif
SWIG_INCLUDE ?= $(filter-out -iquote .,$(FINAL_INCLUDE))
SWIG_USE_CPP ?= true
ifeq ($(SWIG_USE_CPP),true)
SWIG_SOURCE_EXT ?= cpp
SWIG_OPTS += -c++
else
SWIG_SOURCE_EXT ?= c
endif
SWIG ?= swig
SWIG_INTERFACE_I ?= $(wildcard *.i)
#SWIG_MODULE ?= $(SWIG_TARGET_EXT)_$(firstword $(shell sed '/^%module/ !d; s/^ *%module *//' $(SWIG_INTERFACE_I)))
SWIG_MODULE ?= $(firstword $(shell sed '/^%module/ !d; s/^ *%module *//' $(SWIG_INTERFACE_I)))
SWIG_MODULE_SO ?= $(SWIG_MODULE).so
SWIG_MODULE_H ?= $(SWIG_MODULE).h
SWIG_MODULE_WRAP_C ?= $(SWIG_MODULE)_wrap.$(SWIG_SOURCE_EXT)
SWIG_MODULE_TARGET ?= $(SWIG_MODULE).$(SWIG_TARGET_EXT)
SWIG_SRC_C ?= $(sort $(SWIG_MODULE_WRAP_C) $(wildcard *.c *.cpp))
SWIG_OBJ ?= $(patsubst %.cpp,%.o,$(patsubst %.c,%.o,$(sort $(SWIG_SRC_C))))
SWIG_TARGETOWNER ?= root
SWIG_TARGETGROUP ?= root
SWIG_TARGETMODE ?= 0644
SWIG_WRAPPER_DEP_MK = swig.dep.mk
SWIG_INSTALLED_SO = $(addprefix $(INSTALL_LIBDIR)/,$(SWIG_MODULE_SO))
ifneq ($(SWIG_TARGET),php)
SWIG_INSTALLED_MODULE_TARGET = $(addprefix $(SWIG_MODULE_TARGET_DIR)/,$(SWIG_MODULE_TARGET))
endif
SWIG_DEFINES += -DNON_C_BINDING
SWIG_OPTS += $(SWIG_DEFINES)
FINAL_CFLAGS += $(SWIG_DEFINES)
FINAL_CXXFLAGS += $(SWIG_DEFINES)
# for depend.mk
BUILD_OBJ = $(SWIG_OBJ)
DEPEND_MK += $(SWIG_WRAPPER_DEP_MK)
all: $(SWIG_MODULE_SO) $(SWIG_GENERATED_EXTRA)
install: $(SWIG_INSTALLED_SO) $(SWIG_INSTALLED_MODULE_TARGET) $(SWIG_INSTALLED_EXTRA)
clean: clean.generated
distclean: clean
$(SWIG_WRAPPER_DEP_MK): $(SWIG_INTERFACE_I)
$(SWIG) -M -oh $(SWIG_MODULE_H) -module $(SWIG_MODULE) $(SWIG_INCLUDE) $(SWIG_OPTS) -MT $(SWIG_MODULE_WRAP_C) $< > $@.tmp
mv $@.tmp $@
$(SWIG_MODULE_WRAP_C): $(SWIG_INTERFACE_I)
$(SWIG) -oh $(SWIG_MODULE_H) -module $(SWIG_MODULE) $(SWIG_INCLUDE) $(SWIG_OPTS) -o $@ $<
$(SWIG_POSTPROCESS)
$(SWIG_MODULE_SO): $(SWIG_OBJ)
$(CXX) $^ -shared $(FINAL_LDFLAGS) -o $@
$(SWIG_MODULE_TARGET_DIR):
mkdir -p $@
$(SWIG_MODULE_TARGET_DIR)/%: % | $(SWIG_MODULE_TARGET_DIR)
$(INSTALL) -p -o $(SWIG_TARGETOWNER) -g $(SWIG_TARGETGROUP) -m $(SWIG_TARGETMODE) $< $@
clean.generated:
$(RM) -rf $(SWIG_MODULE_WRAP_C) $(SWIG_OBJ) $(SWIG_MODULE_SO) $(SWIG_MODULE_TARGET) $(SWIG_CLEAN) $(SWIG_WRAPPER_DEP_MK)
include $(JWBDIR)/make/rules.mk
include $(JWBDIR)/make/depend.mk

View file

@ -1 +0,0 @@
TAG_VERSION = V_$(shell echo $(VERSION) | $(SED) 's/[\.-]/_/g')

View file

@ -1,7 +0,0 @@
ifeq ($(VCS),cvs)
tag.dist:
cvs tag $(TAG_VERSION)
ftag.dist:
cvs tag -F $(TAG_VERSION)
endif

View file

@ -1,5 +0,0 @@
TAGGED_TMPL_TAG ?= $(notdir $(CWD))
TAGGED_TMPL_EXTS ?= $(TAGGED_TMPL_TAG)
LOCAL_TMPL += $(foreach e,$(TAGGED_TMPL_EXTS),$(wildcard *.$(TAGGED_TMPL_EXTS)))
include $(JWBDIR)/make/tmpl.mk

View file

@ -1,23 +0,0 @@
#TAGGED_TMPL_TMPLS ?= $(wildcard $(addprefix $(TAGGED_TMPL_REPO_DIR)/ld/,$(TAGGED_TMPL_TAGS)/*.ld))
TAGGED_TMPL_TYPE ?= $(notdir $(CWD))
TAGGED_TMPL_EXTS ?= $(TAGGED_TMPL_TYPE)
TAGGED_TMPL_TAG_DIR ?= $(TAGGED_TMPL_REPO_DIR)/$(1)/$2 # call with repodir, tag and type arguments
TAGGED_TMPL_TAG_DIRS ?= $(foreach tag,$(TAGGED_TMPL_TAGS),$(wildcard $(call $(TAGGED_TMPL_TAG_DIR),$(tag),$(1)))) # call with repodir + type argument
TAGGED_TMPL_FIRST_DIR ?= $(firstword $(call $(TAGGED_TMPL_TAG_DIRS),$(1))) # call with repodir + type argument
#TAGGED_TMPL_ORIGIN ?= $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach e,$(TAGGED_TMPL_EXTS),$(wildcard $(call $(TAGGED_TMPL_TAG_DIR),$(tag))/*.$(e))))
#TAGGED_TMPL_LOCAL = $(notdir $(TAGGED_TMPL_ORIGIN))
#TAGGED_TMPL_GENERATED = $(patsubst %.tmpl,%,$(TAGGED_TMPL_LOCAL))
#TAGGED_TMPL_UNTEMPLATE = cat
include $(JWBDIR)/make/defs.mk
#all: $(TAGGED_TMPL_GENERATED)
#clean: tmpl.clean
#
#tmpl.clean:
# /bin/bash $(JWB_SCRIPT_DIR)/scm.sh -f $(TAGGED_TMPL_GENERATED)
#
#%: %.tmpl
# cat %< | $(TAGGED_TMPL_UNTEMPLATE) > $@.tmp

View file

@ -1,105 +0,0 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
ifndef TARGETS_TOOLS_MK_INCLUDED
TARGETS_TOOLS_MK_INCLUDED = true
include $(JWBDIR)/make/rules.mk
ifneq ($(strip $(SRC_ALL_CPP)),)
# mandatory targets
all:
# all.link
install: $(ALL)
# convenience targets
#link: all.link
clean-link: clean.link
#all.link: $(HDRDIR_SCOPE_SUFFIX)
$(HDRDIR_SCOPE_SUFFIX):
mkdir -p $(dir $(HDRDIR_SCOPE_SUFFIX))
ln -s $(shell realpath -m . --relative-to $(dir $(HDRDIR_SCOPE_SUFFIX))) $@
ifeq ($(SCOPE_PREFIX),)
#all.link: $(BUILD_HDRDIR)/$(HDRDIR_SCOPE_SUFFIX)
#$(BUILD_HDRDIR)/$(HDRDIR_SCOPE_SUFFIX):
# cd $(BUILD_HDRDIR_BASE) && ln -s . $(HDRDIR_SCOPE_SUFFIX)
endif
ifneq ($(TARGET),mingw)
$(LIB_SO): $(BUILD_OBJ)
endif
all.done: $(PREREQ_DONE) $(BUILD_HDR) $(BUILD_EXE_SH) $(MEMBERS) $(LIB_A) | $(HDRDIR_SCOPE_SUFFIX)
ifneq ($(TARGET),mingw)
all.done: $(LIB_SO)
endif
endif
clean: objclean textclean localclean profclean clean.link
clean.link:
if [ -L "$(HDRDIR_SCOPE_SUFFIX)" -a "`realpath --relative-to . $(HDRDIR_SCOPE_SUFFIX) 2>/dev/null`" = . ]; then \
rm $(HDRDIR_SCOPE_SUFFIX) ;\
rmdir -p $(dir $(HDRDIR_SCOPE_SUFFIX)) 2>/dev/null || : ;\
fi
CLANG_TIDY_H_C_CPP := $(shell $(ECHO) $(LOCAL_H) | xargs -r $(GREP) -l 'extern *"C"')
CLANG_TIDY_H_C := $(wildcard [a-z]*.h)
CLANG_TIDY_H_CPP := $(wildcard [A-Z]*.h)
#CLANG_TIDY_H_CPP := $(filter-out $(CLANG_TIDY_H_C),$(LOCAL_H))
# false positives on assert(), see https://reviews.llvm.org/D31130
CLANG_TIDY_EXTRA_ARGS += -cppcoreguidelines-pro-bounds-array-to-pointer-decay
# keep va_args
CLANG_TIDY_EXTRA_ARGS += -cppcoreguidelines-pro-type-vararg
# keep pointer arithmetic
CLANG_TIDY_EXTRA_ARGS += -cppcoreguidelines-pro-bounds-pointer-arithmetic
# don't have GSL (for now)
CLANG_TIDY_EXTRA_ARGS += -cppcoreguidelines-pro-bounds-constant-array-index
CLANG_TIDY_FILTER = $(SED) 's%\[\([a-z-]\+\)\]$$%[https://clang.llvm.org/extra/clang-tidy/checks/\1.html]%'
CLANG_TIDY_CHECKS ?= -$(subst $(space),,*,clang-analyzer-*,-clang-analyzer-cplusplus*,modernize-*,portability-*,cppcoreguidelines-*$(addprefix $(comma),$(CLANG_TIDY_EXTRA_ARGS)))
CLANG_TIDY ?= clang-tidy -checks=$(CLANG_TIDY_CHECKS)
clean: clang-tidy-clean
clang-tidy-clean:
rm -f clang-tidy-cache*.tmp
CLANG_TIDY_CACHE_CPP = clang-tidy-cache-cpp.tmp
$(CLANG_TIDY_CACHE_CPP): $(LOCAL_CPP)
$(CLANG_TIDY) $(LOCAL_CPP) -- $(FINAL_INCLUDE) -x c++ | $(CLANG_TIDY_FILTER) | tee $@
clang-tidy-h-c-cpp:
ifneq ($(CLANG_TIDY_H_C_CPP),)
$(CLANG_TIDY) $(CLANG_TIDY_H_C_CPP) -- $(FINAL_INCLUDE)
endif
clang-tidy-h-c:
ifneq ($(CLANG_TIDY_H_C_C),)
$(CLANG_TIDY) $(CLANG_TIDY_H_C) -- $(FINAL_INCLUDE)
endif
clang-tidy-h-cpp:
ifneq ($(CLANG_TIDY_H_CPP),)
$(CLANG_TIDY) $(CLANG_TIDY_H_CPP) -- $(FINAL_INCLUDE) -x c++
endif
clang-tidy-h: clang-tidy-h-c clang-tidy-h-cpp clang-tidy-h-c-cpp
clang-tidy-c:
ifneq ($(LOCAL_C),)
$(CLANG_TIDY) $(LOCAL_C) -- $(FINAL_INCLUDE)
endif
clang-tidy-cpp: $(CLANG_TIDY_CACHE_CPP)
cat $<
clang-tidy: clang-tidy-h clang-tidy-c clang-tidy-cpp
endif # ifndef TARGETS_TOOLS_MK_INCLUDED

View file

@ -1,32 +0,0 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
EXE_BASENAME ?= test-$(notdir $(shell $(PWD)))
include $(JWBDIR)/make/run.mk
all: $(EXE)
install:
clean: execlean localclean profclean testclean
distclean:
run test: all.dirs $(EXE) $(EXE_BIN)
strace: $(EXE) $(EXE_BIN)
test: test.done
test.done:
if ! 2>&1 make run > test.out 2>&1; then \
$(CAT) test.out; \
exit 1; \
fi
touch $@
testclean:
$(RM) -rf test.done test.out
ifeq ($(USE_PROJECT_LIB),true)
$(LIB_SO): $(LIB_A)
$(EXE): $(LIB_SO)
endif
all.dirs:

View file

@ -1,13 +0,0 @@
all:
install:
clean:
distclean:
JAVA_TEST_MAIN_JAVA = $(JAVA_SRC_DIR)/$(JAVA_TEST_MAIN_CLASS).java
#JAVA_TEST_MAIN_CLASSFILE = $(JAVA_SRC_DIR)/$(JAVA_TEST_MAIN_CLASS).class
JAVA_SRC += $(JAVA_TEST_MAIN_JAVA)
#include $(JWBDIR)/make/java.mk
run test: $(JAVA_CLASSFILES)
CLASSPATH=$(shell echo $(CLASSPATH) | sed 's/ */:/g') time -p java $(JAVA_JVM_OPTS) $(JAVA_TEST_MAIN_CLASS) $(EXE_ARGS)

View file

@ -1,433 +0,0 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
# -- project data
CUSTOMER ?= jannet
PROJECT ?= legal
TOPIC ?= $(notdir $(shell $(PWD)))
VERSION ?= $(shell sed "s/-dev$$//" VERSION)
AUTHORS ?=
#TITLE ?= Allgemeine Bedingungen für
#SUBTITLE ?= Dienstgüte-Vereinbarungen
DATE ?= $(shell date +'%Y/%m/%d')
#CONFIDENTIAL_REMARK ?= Vertraulich
BEAMER_HANDOUT ?= false
BEAMER_ASPECTRATIO ?= 169
# -- files
MAIN ?= main
HEADER ?= header
FRONTPAGE ?= frontpage
OUTPUT ?= $(patsubst %-dev,%,$(TOPIC)-$(VERSION))
DISTDIR ?= dist
# -- dependencies
LOCAL_PREREQ ?= Makefile cfg.mk main.tex.tmpl \
$(wildcard *.tex)
# -- formatting
#DOCUMENT_CLASS ?= book
ifneq ($(MAKECMDGOALS),html)
DOCUMENT_CLASS ?= article
else
DOCUMENT_CLASS ?= article
endif
TEX_TMPL_BASE_DIR ?= $(JWBDIR)/tmpl/tex
TEX_TMPL_STYLE ?= de_technical
TEX_TMPL_DIR ?= $(TEX_TMPL_BASE_DIR)/$(TEX_TMPL_STYLE)
IMPORTED_TEMPLATES ?= $(shell ls $(TEX_TMPL_DIR)/*.tmpl)
WWW_IMAGEDIR ?= $(PROJECTS_DIR)/jw-build/htdocs/images/logo-janware/
FRONTLOGO_PDF ?= logo-janware.pdf
FRONTLOGO_EPS ?= janware-frontpage-top-right.png
FRONTLOGO_WEB ?= janware-frontpage-top-right.png
ICON_UP ?= up.png
ICON_PREV ?= prev.png
ICON_NEXT ?= next.png
ICON_INDEX ?= index.png
ICON_CONTENTS ?= contents.png
# -- web publishing
HTMLDIR ?= $(TOPIC)
TARGET_HOST ?= cvs.janware.com
TARGET_DIR ?= /home/wwwrun/dat/htdocs/jannet.de_443/upload/$(CUSTOMER)/projects/$(PROJECT)/doc/$(TOPIC)
TARGET_DIR_MODE ?= 755
TARGET_FILE_MODE ?= 644
TARGET_USER ?= root
UPLOAD_MODULE ?= doc/$(TOPIC)
UPLOAD_FILE_MODE ?= 644
UPLOAD_DIR_MODE ?= 755
include $(JWBDIR)/make/tag-defs.mk
include $(JWBDIR)/make/tag-rules.mk
ifeq ($(TEX_TMPL_DIR), "")
TEX_TMPL_DIR = thisisnotadirectory
endif
latex = latex
PDFLATEX ?= pdflatex
PDF_VIEWER ?= $(firstword $(shell which okular kpdf acroread))
CAT ?= cat
SED ?= sed
COMPILATION_RUN_NAMES ?= 1 2 3
# this is what is there already
PRE_FIG_LOCAL = $(wildcard *.fig)
PRE_TEX_LOCAL = $(wildcard *.tex)
PRE_TMPL_LOCAL = $(wildcard *.tmpl *.ger)
PRE_HTML_LOCAL = $(wildcard *.html)
PRE_FIG_REMOTE = $(foreach dir,$(TEX_TMPL_DIR),$(wildcard $(dir)/*.fig))
PRE_TEX_REMOTE = $(foreach dir,$(TEX_TMPL_DIR),$(wildcard $(dir)/*.tex))
PRE_TMPL_REMOTE = $(foreach dir,$(TEX_TMPL_DIR),$(wildcard $(dir)/*.tmpl $(dir)/*.ger))
PRE_HTML_REMOTE = $(foreach dir,$(TEX_TMPL_DIR),$(wildcard $(dir)/*.html))
# this is what should be there
FILES_FROM_TMPL = $(notdir $(patsubst %.ger,%.tex,$(patsubst %.tmpl,%,$(PRE_TMPL_REMOTE) $(PRE_TMPL_LOCAL))))
EPS_FROM_FIG = $(notdir $(patsubst %.fig,%.png,$(PRE_FIG_REMOTE) $(PRE_FIG_LOCAL)))
FILES_COPIED = $(notdir $(wildcard $(TEX_TMPL_DIR)/*.html $(TEX_TMPL_DIR)/*.tex))
GENERATED += $(FILES_FROM_TMPL) $(EPS_FROM_FIG) $(FILES_COPIED) $(FRONTLOGO_PDF)
GENERATED_TEX = $(filter %.tex,$(GENERATED))
GENERATED_EPS = $(filter %.png,$(GENERATED))
GENERATED_HTML = $(filter %.html,$(GENERATED))
CMD_PARSE_GRAPHICS = $(SED) '/includegraphics/ !d; s/[^{]*{\([^}]*\).*/\1/; /^\.\./ d; s/^.\///' *.tex *.tmpl | sort -u
CONTACT_EMAIL ?= contact@janware.com
ifeq ($(DIST_VERSION),)
DIST_VERSION = $(VERSION)
endif
# all
TEX = $(PRE_TEX_LOCAL) $(GENERATED_TEX)
EPS = $(GENERATED_EPS)
HTML = $(PRE_HTML_LOCAL) $(GENERATED_HTML)
LATEX_INPUT = $(TEX) $(EPS)
HTML_INPUT = $(HTML) $(IMAGES)
# this comes in handy
DATE_FORMAT ?= '%b, %d, %Y'
DATE := $(if $(DATE),$(shell date +$(DATE_FORMAT) --date $(DATE)),$(shell date +$(DATE_FORMAT)))
TEX_WARN_DONT_EDIT = "\
%+---------------------------------------------------+\n\
%| DO NOT EDIT THIS FILE! |\n\
%| It was automatically created during the build |\n\
%| process! |\n\
%+---------------------------------------------------+\n"
HTML_WARN_DONT_EDIT = "\
<!--\n\
+---------------------------------------------------+\n\
| DO NOT EDIT THIS FILE! |\n\
| It was automatically created during the build |\n\
| process! |\n\
+---------------------------------------------------+\n\
-->"
WD = $(shell $(PWD))
IMAGES = $(patsubst %,$(IMAGEDIR)/%,$(FRONTLOGO_EPS) $(FRONTLOGO_WEB) $(FRONTLOGO_PDF) \
$(ICON_UP) $(ICON_PREV) $(ICON_NEXT) $(ICON_INDEX) $(ICON_CONTENTS)) \
#LOCAL_IMPORTED_TEMPLATES = $(notdir $(IMPORTED_TEMPLATES))
#FMT_OFFLINE = tex dvi ps pdf txt
FMT_OFFLINE = tex pdf # txt
FMT = $(FMT_OFFLINE) html
OUT = $(DISTDIR)/$(OUTPUT)
FMT_OUT = $(patsubst %,$(OUT).%.zip,$(FMT))
FMT_OFFLINE_OUT = $(patsubst %,$(OUT).%.zip,$(FMT_OFFLINE))
ALL = $(FMT_OUT) html_install
#PRE_HTML = $(patsubst %.tmpl,%,$(wildcard *.html.tmpl))
#LINETMPL = $(wildcard *.linetmpl)
#TEXFROMGER = $(patsubst %.ger,%.tex,$(wildcard *.ger))
#TMPL = $(wildcard *.tmpl)
#FILEFROMTMPL = $(patsubst %.tmpl,%,$(TMPL))
#GERFROMLINETMPL = $(patsubst %.linetmpl,%,$(wildcard *.linetmpl))
#PRE_TEX = $(patsubst %.ger,%.tex,\
# $(patsubst %.tmpl,%,$(wildcard *.tex.tmpl *.ger.tmpl) $(LOCAL_IMPORTED_TEMPLATES)) \
# $(GERFROMLINETMPL)) $(TEXFROMGER)
NEWDIRS = $(DISTDIR) $(HTMLDIR) $(DVIDIR)
ifeq ($(DOCUMENT_CLASS),)
DOCUMENT_CLASS = article
endif
ifeq ($(BEAMER_HANDOUT),true)
DOCUMENT_CLASS_OPTIONS += ,handout
endif
ifneq ($(BEAMER_ASPECTRATIO),)
DOCUMENT_CLASS_OPTIONS += ,aspectratio=$(BEAMER_ASPECTRATIO)
endif
ifneq ($(BEAMER_HANDOUT),true)
BEAMER_ANIMATION_FRAMES ?= 36
else
BEAMER_ANIMATION_FRAMES ?= 1
endif
define mangle_tmpl
@echo "+ generating $< -> $@"
@if [ $(suffix $@) = tex ]; then echo -e $(TEX_WARN_DONT_EDIT) > $@; fi
@if [ $(suffix $@) = html ]; then echo -e $(HTML_WARN_DONT_EDIT) > $@; fi
$(CAT) $< | $(SED) -e "\
s%__DATE__%$(DATE)%g; \
s%__AUTHORS__%$(AUTHORS)%g; \
s%__CONTACT_EMAIL__%$(CONTACT_EMAIL)%g; \
s%__TITLE__%$(TITLE)%g; \
s%__VERSION__%$(DIST_VERSION)%g; \
s%__CUSTOMER__%$(CUSTOMER)%g; \
s%__TOPIC__%$(TOPIC)%g; \
s%__SUBTITLE__%$(SUBTITLE)%g; \
s%__CONFIDENTIAL_REMARK__%$(CONFIDENTIAL_REMARK)%g; \
s%__HEADER__%$(HEADER)%g; \
s%__FRONTPAGE__%$(FRONTPAGE)%g; \
s%__FRONTLOGO_EPS__%$(IMAGEDIR)/$(FRONTLOGO_EPS)%g; \
s%__FRONTLOGO_PDF__%$(FRONTLOGO_PDF)%g; \
s%__FRONTLOGO_WEB__%$(FRONTLOGO_WEB)%g; \
s%__ICON_UP__%$(ICON_UP)%g; \
s%__ICON_INDEX__%$(ICON_INDEX)%g; \
s%__ICON_CONTENTS__%$(ICON_CONTENTS)%g; \
s%__ICON_PREV__%$(ICON_PREV)%g; \
s%__ICON_NEXT__%$(ICON_NEXT)%g; \
s%__DOCUMENT_CLASS__%$(DOCUMENT_CLASS)%g; \
s%__UPLOAD_MODULE_PATH__%$(UPLOAD_MODULE_PATH)%g; \
s%__UPLOAD_TEST_PREFIX__%$(UPLOAD_TEST_PREFIX)%g; \
s%__DOCUMENT_CLASS_OPTIONS__%$(DOCUMENT_CLASS_OPTIONS)%g; \
s%__ANIMATION_FRAMES__%$(BEAMER_ANIMATION_FRAMES)%g; \
s%ä%\\\\\"a%g; \
s%Ä%\\\\\"A%g; \
s%ö%\\\\\"o%g; \
s%Ö%\\\\\"O%g; \
s%ü%\\\\\"u%g; \
s%Ü%\\\\\"U%g; \
s%ß%\\\"s%g; \
s%\xc3\xa4%\\\\\"a%g; \
s%\xc3\x84%\\\\\"A%g; \
s%\xc3\xb6%\\\\\"o%g; \
s%\xc3\x96%\\\\\"O%g; \
s%\xc3\xbc%\\\\\"u%g; \
s%\xc3\x9c%\\\\\"U%g; \
s%\xc3\x9f%\\\"s%g; \
" | awk ' \
BEGIN { FS=":" } { \
if ($$0 ~ /SUBST_LINE_NUM/) { \
start=$$1; patt=$$2; file=$$3; \
regex=$$4; offset=$$5; rest=$$6; \
grepcmd="grep -n \042" regex "\042 " file; \
grepcmd | getline; \
linenum=$$1; \
print start linenum rest \
} else { print $$0 } } \
' >> $@.tmp
@mv $@.tmp $@
endef
first_target: dirs $(ALL)
tex: dirs $(OUT).tex.zip
dvi: dirs $(OUT).dvi.zip
ps: dirs $(OUT).ps.zip
txt: dirs $(OUT).txt.zip
html: dirs $(OUT).html.zip
pdf: dirs $(OUT).pdf.zip
odt: dirs $(OUT).odt
texsrc: $(GENERATED)
# generate from remote rules
%.png: $(TEX_TMPL_DIR)/%.fig
fig2dev -L png $< $@
%.html: $(TEX_TMPL_DIR)/%.html
cp $< $@
%.tex: $(TEX_TMPL_DIR)/%.tex
cp $< $@
%.tex: %.tex.tmpl
$(mangle_tmpl)
%.tex: $(TEX_TMPL_DIR)/%.tex.tmpl
$(mangle_tmpl)
%.html: $(TEX_TMPL_DIR)/%.html.tmpl
$(mangle_tmpl)
# generate from local rules
%.png: %.fig
fig2dev -L png $< $@
%.tex: %.ger
$(mangle_tmpl)
%: %.tmpl
$(mangle_tmpl)
$(FRONTLOGO_PDF): $(WWW_IMAGEDIR)/$(patsubst %.pdf,%.svg,$(FRONTLOGO_PDF))
inkscape --export-filename="$@" $<
%.pdf: %.svg
inkscape --export-filename="$@" $<
$(WWW_IMAGEDIR)/%.svg: %.svg
cp $< $@
$(CVS_IMAGEDIR)/%.svg: %.svg
cp $< $@
$(CVS_IMAGEDIR)/%.png: %.png
cp $< $@
cfgtest.done:
test -n "$(OUTPUT)" # OUTPUT
test -n "$(DISTDIR)" # DISTDIR
test -n "$(HTMLDIR)" # HTMLDIR
test -n "$(TARGET_HOST)" # TARGET_HOST
test -n "$(TARGET_DIR)" # TARGET_DIR
test -n "$(TARGET_DIR_MODE)" # TARGET_DIR_MODE
test -n "$(TARGET_FILE_MODE)" # TARGET_FILE_MODE
test -n "$(TARGET_USER)" # TARGET_USER
test -n "$(MAIN)" # MAIN
test -n "$(FRONTPAGE)" # FRONTPAGE
test -n "$(IMAGES)" # IMAGES
test -n "$(AUTHORS)" # AUTHORS
test -n "$(TITLE)" # TITLE
test -n "$(SUBTITLE)" # SUBTITLE
test -d $(WWW_IMAGEDIR) # IMAGEDIR
@for IMG in $(IMAGES); do if [ ! -f $$IMG ]; then echo "$$IMG is missing"; exit 1; fi; done
test -n "$(VERSION)" # VERSION
touch $@
test:
@echo TEX_TMPL_DIR = $(TEX_TMPL_DIR)
@echo GENERATED = $(GENERATED)
@echo FILES_FROM_TMPL = $(FILES_FROM_TMPL)
@echo EPS_FROM_FIG = $(EPS_FROM_FIG)
cfgtest: cfgtest.done
#%.clean:
# $(RM) -rf $(OUT).%.zip
dirs.done:
mkdir -p $(NEWDIRS)
touch dirs.done
dirs: dirs.done
arch:
test $(shell uname -s) = Linux
xdvi: $(LATEX_INPUT)
@echo "-- running latex just once ..."
$(latex) $(MAIN).tex
xdvi $(MAIN).dvi
xpdf: $(LATEX_INPUT)
@echo "-- running latex just once ..."
$(PDFLATEX) $(MAIN).tex
$(PDF_VIEWER) $(MAIN).pdf
$(OUT).tex.zip: cfgtest $(LATEX_INPUT)
@echo "-- creating zipfile with tex source files"
zip $@ $(LATEX_INPUT) 2>/dev/null
#$(OUTPUT).dvi: $(LATEX_INPUT)
# @echo "-- creating dvi file"
# $(latex) $(MAIN).tex; $(latex) $(MAIN).tex; $(latex) $(MAIN).tex;
# cp $(MAIN).dvi $@
#$(OUT).dvi.zip: $(OUTPUT).dvi
# zip $@ $^
#$(OUTPUT).txt: $(OUTPUT).dvi
# @echo "-- creating plain ascii file"
# dvi2tty $< -w100 -o $@
#$(OUT).txt.zip: $(OUTPUT).txt
# zip $@ $<
TEX4HT_FIRST_LATEX_LINE = \
'\makeatletter\def\HCode{\futurelet\HCode\HChar}\def\HChar{\ifx"\HCode\def\HCode"\#\#1"{\Link\#\#1}\expandafter\HCode\else\expandafter\Link\fi}\def\Link\#1.a.b.c.{\g@addto@macro\@documentclasshook{\RequirePackage[\#1,html,3,sections+]{tex4ht}}\let\HCode\documentstyle\def\documentstyle{\let\documentstyle\HCode\expandafter\def\csname tex4ht\endcsname{\#1,html,3}\def\HCode\#\#\#\#1{\documentstyle[tex4ht,3}\@ifnextchar[{\HCode}{\documentstyle[tex4ht]}}}\makeatother\HCode .a.b.c.\input'
$(HTMLDIR): $(LATEX_INPUT) $(HTML_INPUT)
test $(MAIN) != index
$(RM) -rf $@
mkdir -p $@
latex $(TEX4HT_FIRST_LATEX_LINE) $(MAIN)
latex $(TEX4HT_FIRST_LATEX_LINE) $(MAIN)
latex $(TEX4HT_FIRST_LATEX_LINE) $(MAIN)
tex4ht $(MAIN)
t4ht -d$(HTMLDIR) $(MAIN)
#$(CAT) index_head.html $(MAIN.html) index_tail.html > index.html
$(CAT) $(MAIN.html) > index.html
mv *.html *.css $(HTMLDIR)
mkdir -p $(addprefix $(HTMLDIR)/,$(sort $(dir $(shell $(CMD_PARSE_GRAPHICS)))))
for g in $(sort $(shell $(CMD_PARSE_GRAPHICS))); do cp $$g $(HTMLDIR)/$$g; done
#cp -p $(IMAGES) $(HTMLDIR)
touch $@
$(OUT).html.zip: $(HTMLDIR)
@echo "-- creating zipfile with html source files"
zip -r $@ $(HTMLDIR)
#$(OUTPUT).ps: $(OUTPUT).dvi
# @echo "-- creating postscript file"
# dvips -f $< > $(OUTPUT).ps
#$(OUT).ps.zip: $(OUTPUT).ps
# zip $@ $<
$(OUTPUT).pdf: $(GENERATED)
@echo "-- creating pdf file"
@for i in $(COMPILATION_RUN_NAMES) ; do \
if [ $$i != $(lastword $(COMPILATION_RUN_NAMES)) ]; then dm="-draftmode"; else dm=""; fi ;\
echo ================================================================== pass $$i: running $(PDFLATEX) $$dm $(MAIN).tex ;\
$(PDFLATEX) $$dm $(MAIN).tex || exit 1 ;\
done
@mv $(MAIN).pdf $(OUTPUT).pdf
$(OUT).pdf.zip: $(OUTPUT).pdf
zip $@ $<
$(OUTPUT).odt: $(GENERATED)
@echo "-- creating odt file"
mk4ht oolatex $(MAIN).tex
mv $(MAIN).odt $(OUTPUT).odt
html_install: $(HTMLDIR)
@echo "-- installing html to $(TARGET_HOST):$(TARGET_DIR) as user $(TARGET_USER)"
$(CVS_RSH) -l $(TARGET_USER) $(TARGET_HOST) -C "\
mkdir -p $(TARGET_DIR); chmod $(TARGET_DIR_MODE) $(TARGET_DIR)"
/usr/bin/rsync -az --delete -v --links -e $(CVS_RSH) $(HTMLDIR)/* $(TARGET_USER)@$(TARGET_HOST):$(TARGET_DIR)
$(CVS_RSH) -l $(TARGET_USER) $(TARGET_HOST) -C "\
cd $(TARGET_DIR); find . -type d | xargs chmod $(TARGET_DIR_MODE); find . -type f | xargs chmod $(TARGET_FILE_MODE)"
clean:
@echo "-- cleaning up ..."
$(RM) -rf *.maf *.mtc *.mtc0 *.ptc1 \
*.aux *.toc *.dvi *.pdf *.ps *~ *.log *.done *.rep *.nav *.snm *.tdo \
*.4ct *.4tc *.4of *.4oo *.4os *.4og */*.4og *.css *.html *.idv *.lg *.xref *.odt \
*.lol *.bak *.idx *.ilg *.ind *.out *.brf .\#* \#* *.vrb \
$(NEWDIRS) $(OUTPUT).txt \
$(GENERATED) \
$(CLEAN)
priceclean: clean
for f in `grep -i euro *.tmpl | cut -d: -f1 | sort -u`; do \
grep -vi euro $$f > $$f.new ;\
mv $$f.new $$f ;\
done
view: pdf
$(PDF_VIEWER) $(OUTPUT).pdf
unzip:
unzip *.zip
%-handout:
BEAMER_HANDOUT=true make $*
UPLOAD_FILES = $(OUTPUT).pdf
include $(JWBDIR)/make/upload.mk

View file

@ -1,13 +0,0 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/rules.mk
all:
install:
distclean: textclean localclean
clean: textclean localclean
test:

View file

@ -1,34 +0,0 @@
SOURCES = $(wildcard *.tex)
PDF_VIEWER ?= $(firstword $(shell which okular acroread))
PNG_VIEWER ?= $(firstword $(shell which qiv gimp))
MAIN_TEX ?= $(firstword $(wildcard main.tex *.tex))
MAIN ?= $(patsubst %.tex,$(MAIN_TEX))
OUT_PDF ?= $(notdir $(shell $(PWD))).pdf
OUT_PNG ?= $(patsubst %.pdf,%.png,$(OUT_PDF))
PNG_WIDTH ?= 200
all: pdf
clean: clean.files
install:
distclean:
pdf: $(OUT_PDF)
png: $(OUT_PNG)
view: $(OUT_PDF)
$(PDF_VIEWER) $<
view-png: $(OUT_PNG)
$(PNG_VIEWER) $<
$(OUT_PDF): $(SOURCES)
pdflatex $(MAIN_TEX)
test -e $(basename $(MAIN_TEX)).pdf
if [ "$(basename $(MAIN_TEX)).pdf" != "$(OUT_PDF)" ]; then mv $(basename $(MAIN_TEX)).pdf $(OUT_PDF); fi
touch $@
$(OUT_PNG): $(OUT_PDF)
convert -density 400 -scale x$(PNG_WIDTH) $< $@
clean.files:
$(RM) -rf *.done *.aux *.log *.pdf *.nav *.out *.snm *.toc .*.swp $(OUT_PNG) *.vrb

View file

@ -1,34 +0,0 @@
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/rules.mk
BASEDIR = $(PROJECT_HTML_THEMES_DIR)/$(patsubst theme-%,%,$(PROJECT))/images
GENERATED_IMAGES = $(shell find . -name generate.conf | xargs -r dirname | \
while read d; do sed "s%^%$$d/%" $$d/generate.conf; done)
all:
install: install-images.done
clean: doneclean
distclean:
%-greyed-out.png: %.png
/bin/bash $(JWB_SCRIPT_DIR)/convert-to-greyed-out-image.sh $< $@.tmp
mv $@.tmp $@
basedir.done:
$(INSTALL) -d -m $(IMGDIRMODE) -o $(IMGDIROWNER) -g $(IMGDIRGROUP) $(BASEDIR)
touch $@
generate.done: $(GENERATED_IMAGES)
install-images.done: basedir.done generate.done $(INSTALLED_IMG)
for d in `find . -type d -a ! -name . -a ! -name CVS`; do \
$(INSTALL) -d -m $(IMGDIRMODE) -o $(IMGDIROWNER) -g $(IMGDIRGROUP) $(BASEDIR)/$$d ;\
done
for f in `find . -name '*.png' -o -name '*.jpg' -o -name '*.gif'`; do \
$(INSTALL) -p -m $(IMGMODE) -o $(IMGOWNER) -g $(IMGGROUP) $$f $(BASEDIR)/$$f ;\
done
touch $@
blah:
@echo GENERATED_IMAGES = $(GENERATED_IMAGES)

View file

@ -1,22 +0,0 @@
include $(JWBDIR)/make/defs.mk
# -- TMPL
INSTALLATION_FILE_TYPES += TMPL
BUILD_TMPLDIR = $(TOPDIR)/tmpl
LOCAL_TMPL += $(filter-out $(DONT_INSTALL),$(wildcard *.tmpl))
ifndef TMPL_SUBDIR
TMPL_SUBDIR := $(shell $(PWD) | $(SED) '/.*\/tmpl\(\/\|$$\)/!d; s%.*/tmpl\(/\|$$\)%%')
endif
ifeq ($(TMPL_SUBDIR),)
INSTALL_TMPLDIR = $(PROJECT_TMPLDIR)
else
INSTALL_TMPLDIR = $(PROJECT_TMPLDIR)/$(TMPL_SUBDIR)
endif
INSTALLED_TMPL += $(addprefix $(INSTALL_TMPLDIR)/,$(LOCAL_TMPL))
include $(JWBDIR)/make/rules.mk
all:
install: install_TMPL
clean: textclean localclean doneclean
test:

View file

@ -1 +0,0 @@
include $(JWBDIR)/make/dummy.mk

View file

@ -1,20 +0,0 @@
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/defs-cpp.mk
include $(JWBDIR)/make/profiler-defs.mk
include $(JWBDIR)/make/targets-tools.mk
include $(JWBDIR)/make/cpp-extra-targets.mk
include $(JWBDIR)/make/depend.mk
include $(JWBDIR)/make/backup.mk
include $(JWBDIR)/make/dev-utils.mk
FINAL_CFLAGS += -D_USRDLL -DALL_EXPORTS
FINAL_CXXFLAGS += -D_USRDLL -DALL_EXPORTS
ifneq ($(SRC_ALL_CPP),)
all: all.done
endif

View file

@ -1,11 +0,0 @@
AUTOCONF_IN := $(wildcard *.in */*.in */*/*.in)
# AUTOCONF_IN := $(shell find . -maxdepth 3 -name '*.in' | grep -v dist)
AUTOCONF_GENERATED := $(patsubst %.in,%,$(AUTOCONF_IN))
include $(JWBDIR)/make/topdir.mk
ifneq ($(AUTOCONF_IN),)
ifneq ($(AUTOCONF_GENERATED),$(wildcard $(AUTCONF_GENERATED)))
include $(JWBDIR)/make/autoconf.mk
endif
endif

View file

@ -1,45 +0,0 @@
# this makefile needs
# PCKG_ROOT
# VERSION
# JWB_SCRIPT_DIR
#UPLOAD_SH = $(JWB_SCRIPT_DIR)/upload.sh
#MKSPEC_SH = $(JWB_SCRIPT_DIR)/mkspec-wrapper.sh $(TOPDIR)/make/mkspec.sh
#FTP_FILE_MODE ?= 640
#FTP_DIR_MODE ?= 750
#FTP_SRC_GROUP ?= spidsrc
#FTP_SRC_USER ?= $(shell whoami)
#FTP_RUN_GROUP ?= spidrun
#FTP_RUN_USER ?= $(shell whoami)
#FTP_DEV_GROUP ?= spiddev
#FTP_DEV_USER ?= $(shell whoami)
#FTP_HOST ?= pkg.janware.com
#FTP_HOST_LOGIN ?= root
#
#OS_NAME = $(shell echo $(OS_NAME_VERSION) | sed 's/-.*//')
#OS_VERSION = $(shell echo $(OS_NAME_VERSION) | sed 's/[^-]\+-//')
#
## $(FTP_PCKG_DIR)/linux/$(OS_NAME)/$(OS_VERSION)/rpm/src
#FTP_PCKG_DIR ?= /pub/packages
#PCKG_ROOT ?= $(FTP_PCKG_DIR)/linux/$(OS_NAME)/$(OS_VERSION)
##PCKG_ROOT = $(FTP_PCKG_DIR)/$(RPM_PROJECT)
#CURRENT_SRC = $(warning PCKG_ROOT=$(PCKG_ROOT))$(PCKG_ROOT)/tgz/$(PCKG_TAR)
#CURRENT_RPM_RUN_I386 = $(PCKG_ROOT)/$(RPM_ARCH)/$(PCKG_RPM_RUN_I386)
#CURRENT_RPM_DEVEL_I386 = $(PCKG_ROOT)/$(RPM_ARCH)/$(PCKG_RPM_DEVEL_I386)
#CURRENT_RPM_SRC = $(PCKG_ROOT)/src/$(PCKG_RPM_SRC)
#REMOTE_TARGET_PREFIX = rsync_ssh://$(FTP_HOST_LOGIN)@$(FTP_HOST):/srv/ftp
#REMOTE_TARGETS = \
# $(REMOTE_TARGET_PREFIX)$(CURRENT_SRC):$(FTP_FILE_MODE):$(FTP_DIR_MODE):$(FTP_SRC_USER).$(FTP_SRC_GROUP) \
# $(REMOTE_TARGET_PREFIX)$(CURRENT_RPM_RUN_I386):$(FTP_FILE_MODE):$(FTP_DIR_MODE):$(FTP_RUN_USER).$(FTP_RUN_GROUP)\
# $(REMOTE_TARGET_PREFIX)$(CURRENT_RPM_SRC):$(FTP_FILE_MODE):$(FTP_DIR_MODE):$(FTP_SRC_USER).$(FTP_SRC_GROUP)
#
#ifeq ($(CREATE_DEVEL),true)
#REMOTE_TARGETS += \
# $(REMOTE_TARGET_PREFIX)$(CURRENT_RPM_DEVEL_I386):$(FTP_FILE_MODE):$(FTP_DIR_MODE):$(FTP_DEV_USER).$(FTP_DEV_GROUP)
#endif
# $(REMOTE_TARGET_PREFIX)$(PCKG_ROOT)/CURRENT_SRC:$(FTP_FILE_MODE):$(FTP_DIR_MODE):$(FTP_SRC_USER).$(FTP_SRC_GROUP) \
# $(REMOTE_TARGET_PREFIX)$(PCKG_ROOT)/CURRENT_RPM_SRC:$(FTP_FILE_MODE):$(FTP_DIR_MODE):$(FTP_SRC_USER).$(FTP_SRC_GROUP)
# $(REMOTE_TARGET_PREFIX)$(PCKG_ROOT)/CURRENT_RPM_RUN_I386:$(FTP_FILE_MODE):$(FTP_DIR_MODE):$(FTP_RUN_USER).$(FTP_RUN_GROUP) \
# $(REMOTE_TARGET_PREFIX)$(PCKG_ROOT)/CURRENT_RPM_DEVEL_I386:$(FTP_FILE_MODE):$(FTP_DIR_MODE):$(FTP_DEV_USER).$(FTP_DEV_GROUP)

View file

@ -1,17 +0,0 @@
all:
upload.dist:
if [ -f configure -o -f configure.ac -o -f configure.ac.tmpl ]; then make config; fi
make $(REMOTE_TARGETS)
touch $@.done
yupdate.%.dist:
sudo -u root $(HOME)/bin/yupdate.sh -f $(HOME)/.yupdaterc -s $*
touch $@
CURRENT_%:
echo $($(notdir $@)) > $@
clean: upload.clean
upload.clean:
$(RM) -f upload.dist yupdate.*.dist

View file

@ -1,31 +0,0 @@
include $(JWBDIR)/make/upload-defs.mk
UPLOAD_LAST_VERSION_FILE ?= LAST_UPLOADED_VERSION
UPLOAD_LAST_VERSION ?= $(shell $(CAT) $(UPLOAD_LAST_VERSION_FILE) 2>/dev/null)
all:
upload: upload.dist
upload.dist: $(UPLOAD_FILES)
ifneq ($(UPLOAD_LAST_VERSION),$(VERSION))
make $(REMOTE_TARGETS)
ifeq ($(UPLOAD_TEST_PREFIX),)
echo $(VERSION) > $(UPLOAD_LAST_VERSION_FILE)
$(UPLOAD_SCM) add $(UPLOAD_LAST_VERSION_FILE) || exit 0
$(UPLOAD_SCM) commit -m "$(VERSION)" $(UPLOAD_LAST_VERSION_FILE)
endif
endif
touch $@.done
is-uploaded:
ifneq ($(UPLOAD_LAST_VERSION),$(VERSION))
echo $(VERSION) > $(UPLOAD_LAST_VERSION_FILE)
$(UPLOAD_SCM) add $(UPLOAD_LAST_VERSION_FILE)
$(UPLOAD_SCM) commit -m "`cat $(UPLOAD_LAST_VERSION_FILE)`" $(UPLOAD_LAST_VERSION_FILE)
endif
touch upload.dist.done
clean: upload.clean
upload.clean:
$(RM) -f upload.dist

View file

@ -1,2 +0,0 @@
INSTALL_VIM_SYSTEM_PATH = $(ENV_PREFIX)/usr/share/vim/site
INSTALL_VIM_SYSTEM_PLUGIN_PATH = $(INSTALL_VIM_SYSTEM_PATH)/plugin

Some files were not shown because too many files have changed in this diff Show more