Build system improvements:
* Release target for mingw builds (binaries only) * Include Jenkins BUILD_NUMBER in the release package name * lib6145 is now built/installed/cleaned at the top level * lib70x is now built/installed/cleaned at the top level
This commit is contained in:
parent
059c1e3f2e
commit
de32543269
85
Makefile
85
Makefile
|
@ -5,26 +5,37 @@
|
||||||
|
|
||||||
# Windows stuff needs to end in .exe
|
# Windows stuff needs to end in .exe
|
||||||
ifneq (,$(findstring mingw,$(CC)))
|
ifneq (,$(findstring mingw,$(CC)))
|
||||||
EXEC_SUFFIX = .exe
|
EXEC_SUFFIX=.exe
|
||||||
|
LIB_SUFFIX=dll
|
||||||
|
else
|
||||||
|
EXEC_SUFFIX=
|
||||||
|
LIB_SUFFIX=so
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Basic stuff
|
# Set to disable looking for gutenprint for the backend name..
|
||||||
|
#NO_GUTENPRINT = 1
|
||||||
|
|
||||||
|
# Base executable name
|
||||||
EXEC_NAME ?= dyesub_backend$(EXEC_SUFFIX)
|
EXEC_NAME ?= dyesub_backend$(EXEC_SUFFIX)
|
||||||
|
|
||||||
|
# More stuff..
|
||||||
CPUS ?= $(shell nproc)
|
CPUS ?= $(shell nproc)
|
||||||
#NO_GUTENPRINT = 1
|
REVISION ?= -$(shell if [ -n "${BUILD_NUMBER}" ] ; then echo -n "b${BUILD_NUMBER}"- ; fi ; if [ -d .git ] ; then echo -n "g" ; git rev-parse --short HEAD; else echo -n "NONE" ; fi)
|
||||||
REVISION ?= -g$(shell if [ -d .git ] ; then git rev-parse --short HEAD; else echo "NONE" ; fi)
|
|
||||||
|
|
||||||
# Destination directories (rely on CUPS to tell us where)
|
# Destination directories (rely on CUPS & Gutenprint to tell us where)
|
||||||
GP_PREFIX ?= $(shell pkg-config --variable=prefix gutenprint)
|
GP_PREFIX ?= $(shell pkg-config --variable=prefix gutenprint)
|
||||||
PREFIX ?=
|
PREFIX ?=
|
||||||
CUPS_BACKEND_DIR ?= $(PREFIX)$(shell cups-config --serverbin)/backend
|
CUPS_BACKEND_DIR ?= $(PREFIX)$(shell cups-config --serverbin)/backend
|
||||||
CUPS_DATA_DIR ?= $(PREFIX)$(shell cups-config --datadir)
|
CUPS_DATA_DIR ?= $(PREFIX)$(shell cups-config --datadir)
|
||||||
|
LIB_DIR ?= $(PREFIX)/usr/local/lib/
|
||||||
|
|
||||||
ifeq ($(GP_PREFIX),)
|
ifeq ($(GP_PREFIX),)
|
||||||
GP_PREFIX=/usr/local
|
GP_PREFIX=/usr/local
|
||||||
endif
|
endif
|
||||||
BACKEND_DATA_DIR ?= $(GP_PREFIX)/share/gutenprint/backend_data
|
|
||||||
|
ifneq (,$(findstring mingw,$(CC)))
|
||||||
|
BACKEND_DATA_DIR ?= backend_data
|
||||||
|
endif
|
||||||
|
|
||||||
# Figure out what the backend name needs to be
|
# Figure out what the backend name needs to be
|
||||||
ifeq ($(NO_GUTENPRINT),)
|
ifeq ($(NO_GUTENPRINT),)
|
||||||
|
@ -42,9 +53,17 @@ endif
|
||||||
# Fallthrough
|
# Fallthrough
|
||||||
BACKEND_NAME ?= gutenprint5X+usb
|
BACKEND_NAME ?= gutenprint5X+usb
|
||||||
|
|
||||||
|
# Libraries:
|
||||||
|
LIBS6145_NAME = lib6145/libS6145ImageReProcess.$(LIB_SUFFIX)
|
||||||
|
LIBS6145_SOURCES = lib6145/libS6145ImageReProcess.c
|
||||||
|
LIB70X_NAME ?= lib70x/libMitsuD70ImageReProcess.$(LIB_SUFFIX)
|
||||||
|
LIB70X_SOURCES = lib70x/libMitsuD70ImageReProcess.c
|
||||||
|
|
||||||
|
LIBRARIES = $(LIBS6145_NAME) $(LIB70X_NAME)
|
||||||
|
|
||||||
# Tools
|
# Tools
|
||||||
CC ?= $(CROSS_COMPILE)gcc
|
CC ?= $(CROSS_COMPILE)gcc
|
||||||
LD ?= $(CROSS_COMPILE)gcc
|
LD ?= $(CROSS_COMPILE)ld
|
||||||
CPPCHECK ?= cppcheck
|
CPPCHECK ?= cppcheck
|
||||||
MKDIR ?= mkdir
|
MKDIR ?= mkdir
|
||||||
INSTALL ?= install
|
INSTALL ?= install
|
||||||
|
@ -52,16 +71,12 @@ LN ?= ln
|
||||||
RM ?= rm
|
RM ?= rm
|
||||||
|
|
||||||
# Flags
|
# Flags
|
||||||
CFLAGS += -Wall -Wextra -Wformat-security -g -Og -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -std=c99 # -Wconversion
|
CFLAGS += -Wall -Wextra -Wformat-security -funit-at-a-time -g -Og -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -std=c99 # -Wconversion
|
||||||
LDFLAGS += $(shell pkg-config --libs libusb-1.0)
|
LDFLAGS += $(shell pkg-config --libs libusb-1.0)
|
||||||
CPPFLAGS += $(shell pkg-config --cflags libusb-1.0)
|
CPPFLAGS += $(shell pkg-config --cflags libusb-1.0)
|
||||||
# CPPFLAGS += -DLIBUSB_PRE_1_0_10
|
# CPPFLAGS += -DLIBUSB_PRE_1_0_10
|
||||||
CPPFLAGS += -DURI_PREFIX=\"$(BACKEND_NAME)\" $(OLD_URI)
|
CPPFLAGS += -DURI_PREFIX=\"$(BACKEND_NAME)\" $(OLD_URI)
|
||||||
|
LIBLDFLAGS = -g -shared
|
||||||
# If you want to use LTO..
|
|
||||||
#CFLAGS += -flto
|
|
||||||
# If not...
|
|
||||||
CFLAGS += -funit-at-a-time
|
|
||||||
|
|
||||||
# List of backends
|
# List of backends
|
||||||
BACKENDS = canonselphy canonselphyneo dnpds40 hiti kodak605 kodak1400 kodak6800 magicard mitsu70x mitsu9550 mitsud90 mitsup95d shinkos1245 shinkos2145 shinkos6145 shinkos6245 sonyupd sonyupdneo
|
BACKENDS = canonselphy canonselphyneo dnpds40 hiti kodak605 kodak1400 kodak6800 magicard mitsu70x mitsu9550 mitsud90 mitsup95d shinkos1245 shinkos2145 shinkos6145 shinkos6245 sonyupd sonyupdneo
|
||||||
|
@ -75,6 +90,9 @@ CPPFLAGS += -DUSE_DLOPEN
|
||||||
LDFLAGS += -ldl
|
LDFLAGS += -ldl
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Linking..
|
||||||
|
LDFLAGS += $(CFLAGS) $(CPPFLAGS)
|
||||||
|
|
||||||
# Build stuff
|
# Build stuff
|
||||||
DEPS += backend_common.h
|
DEPS += backend_common.h
|
||||||
SOURCES = backend_common.c backend_sinfonia.c $(addsuffix .c,$(addprefix backend_,$(BACKENDS)))
|
SOURCES = backend_common.c backend_sinfonia.c $(addsuffix .c,$(addprefix backend_,$(BACKENDS)))
|
||||||
|
@ -86,13 +104,16 @@ SINFONIA_BACKENDS_O = $(addsuffix .o,$(addprefix backend_,$(SINFONIA_BACKENDS)))
|
||||||
# And now the rules!
|
# And now the rules!
|
||||||
.PHONY: clean all install cppcheck
|
.PHONY: clean all install cppcheck
|
||||||
|
|
||||||
all: $(EXEC_NAME) $(BACKENDS)
|
all: $(EXEC_NAME) $(BACKENDS) libraries
|
||||||
|
|
||||||
|
libraries: $(LIBRARIES)
|
||||||
|
# $(MAKE) -C lib70x $@
|
||||||
|
|
||||||
%.o: %.c $(DEPS)
|
%.o: %.c $(DEPS)
|
||||||
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
|
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
$(EXEC_NAME): $(SOURCES:.c=.o) $(DEPS)
|
$(EXEC_NAME): $(SOURCES:.c=.o) $(DEPS)
|
||||||
$(CC) -o $@ $(SOURCES:.c=.o) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
$(CC) -o $@ $(SOURCES:.c=.o) $(LDFLAGS)
|
||||||
|
|
||||||
$(BACKENDS): $(EXEC_NAME)
|
$(BACKENDS): $(EXEC_NAME)
|
||||||
$(LN) -sf $(EXEC_NAME) $@
|
$(LN) -sf $(EXEC_NAME) $@
|
||||||
|
@ -113,24 +134,39 @@ testgp_%: dyesub_backend
|
||||||
STP_PARALLEL=$(CPUS) ./regression-gp.pl regression-gp.csv $(subst testgp_,,$@)
|
STP_PARALLEL=$(CPUS) ./regression-gp.pl regression-gp.csv $(subst testgp_,,$@)
|
||||||
|
|
||||||
cppcheck:
|
cppcheck:
|
||||||
$(CPPCHECK) -q -v --std=c99 --enable=all --suppress=variableScope --suppress=selfAssignment --suppress=unusedStructMember -I. -I/usr/include -DCORRTABLE_PATH=\"$(BACKEND_DATA_DIR)\" --include=lib70x/libMitsuD70ImageReProcess.h $(CPPFLAGS) $(SOURCES)
|
$(CPPCHECK) -q -v --std=c99 --enable=all --suppress=variableScope --suppress=selfAssignment --suppress=unusedStructMember -I. -I/usr/include -DCORRTABLE_PATH=\"$(BACKEND_DATA_DIR)\" --include=lib70x/libMitsuD70ImageReProcess.h $(CPPFLAGS) $(SOURCES) $(LIB70X_SOURCES) $(LIBS6145_SOURCES)
|
||||||
|
|
||||||
install:
|
install:
|
||||||
$(MKDIR) -p $(CUPS_BACKEND_DIR)
|
$(MKDIR) -p $(CUPS_BACKEND_DIR)
|
||||||
$(INSTALL) -o root -m 700 $(EXEC_NAME) $(CUPS_BACKEND_DIR)/$(BACKEND_NAME)
|
$(INSTALL) -o root -m 700 $(EXEC_NAME) $(CUPS_BACKEND_DIR)/$(BACKEND_NAME)
|
||||||
|
$(INSTALL) -o root -m 755 $(LIBRARIES) $(LIB_DIR)
|
||||||
$(MKDIR) -p $(CUPS_DATA_DIR)/usb
|
$(MKDIR) -p $(CUPS_DATA_DIR)/usb
|
||||||
$(INSTALL) -o root -m 644 blacklist $(CUPS_DATA_DIR)/usb/net.sf.gimp-print.usb-quirks
|
$(INSTALL) -o root -m 644 blacklist $(CUPS_DATA_DIR)/usb/net.sf.gimp-print.usb-quirks
|
||||||
$(MKDIR) -p $(BACKEND_DATA_DIR)
|
$(MKDIR) -p $(BACKEND_DATA_DIR)
|
||||||
$(INSTALL) -o root -m 644 hiti_data/*bin $(BACKEND_DATA_DIR)
|
$(INSTALL) -o root -m 644 hiti_data/*bin $(BACKEND_DATA_DIR)
|
||||||
|
$(INSTALL) -o root -m 644 lib70x/data/*raw $(BACKEND_DATA_DIR)
|
||||||
|
$(INSTALL) -o root -m 644 lib70x/data/*lut $(BACKEND_DATA_DIR)
|
||||||
|
$(INSTALL) -o root -m 644 lib70x/data/*cpc $(BACKEND_DATA_DIR)
|
||||||
|
$(INSTALL) -o root -m 644 lib70x/data/*dat $(BACKEND_DATA_DIR)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(RM) $(EXEC_NAME) $(BACKENDS) $(SOURCES:.c=.o) lib70x/*o lib6145/*o
|
$(RM) $(EXEC_NAME) $(BACKENDS) $(LIBRARIES) $(SOURCES:.c=.o) $(LIBS6145_SOURCES:.c=.o) $(LIB70X_SOURCES:.c=.o)
|
||||||
|
|
||||||
release: clean
|
release:
|
||||||
$(RM) -Rf selphy_print$(REVISION)
|
$(RM) -Rf selphy_print$(REVISION)
|
||||||
$(MKDIR) -p selphy_print$(REVISION)
|
$(MKDIR) -p selphy_print$(REVISION)
|
||||||
cp -a *.c *.h Makefile blacklist COPYING README lib6145 lib70x hiti_data selphy_print$(REVISION)
|
cp -a COPYING README selphy_print$(REVISION)
|
||||||
tar -czvf selphy_print$(REVISION).tar.gz selphy_print$(REVISION)
|
ifeq (,$(findstring mingw,$(CC)))
|
||||||
|
cp -a *.c *.h Makefile blacklist lib6145 lib70x hiti_data selphy_print$(REVISION)
|
||||||
|
tar -czvf selphy_print-src$(REVISION).tar.gz selphy_print$(REVISION)
|
||||||
|
else
|
||||||
|
cp -a $(EXEC_NAME) $(LIBRARIES) selphy_print$(REVISION)
|
||||||
|
$(MKDIR) -p selphy_print$(REVISION)/$(BACKEND_DATA_DIR)
|
||||||
|
cp -a hiti_data lib70x/data/* selphy_print$(REVISION)/$(BACKEND_DATA_DIR)
|
||||||
|
cp -a lib70x/README selphy_print$(REVISION)/$(BACKEND_DATA_DIR)/README-lib70x
|
||||||
|
cp -a lib6145/README selphy_print$(REVISION)/$(BACKEND_DATA_DIR)/README-lib6145
|
||||||
|
zip -r selphy_print-mingw$(REVISION).zip selphy_print$(REVISION)
|
||||||
|
endif
|
||||||
$(RM) -Rf selphy_print$(REVISION)
|
$(RM) -Rf selphy_print$(REVISION)
|
||||||
|
|
||||||
# Backend-specific joy:
|
# Backend-specific joy:
|
||||||
|
@ -138,3 +174,12 @@ $(SINFONIA_BACKENDS_O): backend_sinfonia.h
|
||||||
backend_mitsu70x.o: CPPFLAGS += -DCORRTABLE_PATH=\"$(BACKEND_DATA_DIR)\" -include lib70x/libMitsuD70ImageReProcess.h
|
backend_mitsu70x.o: CPPFLAGS += -DCORRTABLE_PATH=\"$(BACKEND_DATA_DIR)\" -include lib70x/libMitsuD70ImageReProcess.h
|
||||||
backend_mitsu9550.o: CPPFLAGS += -DCORRTABLE_PATH=\"$(BACKEND_DATA_DIR)\" -include lib70x/libMitsuD70ImageReProcess.h
|
backend_mitsu9550.o: CPPFLAGS += -DCORRTABLE_PATH=\"$(BACKEND_DATA_DIR)\" -include lib70x/libMitsuD70ImageReProcess.h
|
||||||
backend_hiti.o: CPPFLAGS += -DCORRTABLE_PATH=\"$(BACKEND_DATA_DIR)\"
|
backend_hiti.o: CPPFLAGS += -DCORRTABLE_PATH=\"$(BACKEND_DATA_DIR)\"
|
||||||
|
|
||||||
|
# Library joy:
|
||||||
|
%.$(LIB_SUFFIX): CFLAGS += -fPIC --no-strict-overflow
|
||||||
|
|
||||||
|
$(LIB70X_NAME): $(LIB70X_SOURCES:.c=.o)
|
||||||
|
$(CC) $(LIBLDFLAGS) -o $@ $^
|
||||||
|
|
||||||
|
$(LIBS6145_NAME): $(LIBS6145_SOURCES:.c=.o)
|
||||||
|
$(CC) $(LIBLDFLAGS) -o $@ $^
|
||||||
|
|
Loading…
Reference in New Issue