Files
2026-08-20 20:28:40 +01:00

280 lines
11 KiB
Plaintext
Executable File

# This holds the common definitions for Argyll that all the
# subdirectory jam's will include (even if run in the sub directory)
Echo "Argyll Jamtop has been read" ;
# Extra config.
if [ GLOB $(TOP) : JamExtra ] {
include $(TOP)/JamExtra ;
}
# Default install base directory is same directory as Jamtop,
# but can be overriden in the command line.
DESTDIR ?= [ NormPaths . ] ;
# Default prefix is empty, but can be overriden in the command line.
PREFIX ?= "" ;
# Default ref file sub-directory is "ref", but can be overriden in the command line.
REFSUBDIR ?= "ref" ;
Echo "DESTDIR = '$(DESTDIR)', PREFIX = '$(PREFIX)', REFSUBDIR = '$(REFSUBDIR)'" ;
# Keep this DESTDIR anchored to Jamtop. PREFIX is used literally
ANCHORED_PATH_VARS = DESTDIR ;
# Should we also allow CFLAGS, CXXFLAGS, CPPFLAGS & LDFLAGS env. variables
# to have effect ?
# Tell standalone libraries that they are part of Argyll:
DEFINES += ARGYLLCMS ;
# Enable all instrument types by default
DEFINES += ALLINSTS ;
# enable serial instruments & support
USE_SERIAL = true ;
# enable fast serial instruments & support
USE_FAST_SERIAL = true ; # (Implicit in USE_SERIAL too)
# enable USB instruments & support
USE_USB = true ;
# enable dummy Demo Instrument (only if code is available)
USE_DEMOINST = true ;
# Experimental support of D123 instrument:
USE_D123 = false ;
# enable Video Test Patch Generator and 3DLUT device support
# (Not fully implemented)
USE_VTPGLUT = false ;
# enable Printer device support
# (Not implemented)
USE_PRINTER = false ;
# enable CMF Measurement device and accessory support (if present)
# (Not part of ArgyllCMS)
USE_CMFM = false ;
# Compile in graph plotting code
USE_PLOT = true ; # [true]
# Enable UTF-8 code pages on MSWindows V 1903 or later,
# to make executable language handling consistent across MSWin/OS X/Linux
WIN_UTF8 = true ; # [true]
# Use libusb_win32 libusb0.sys on MSWindows
USE_LIBUSB0 = true ; # [true]
# Use UsbDk on MSWindows
# (Can use along side USE_LIBUSB0)
USE_USBDK = false ; # [false]
# For testing CCast
#DEFINES += CCTEST_PATTERN ;
# Information for compiling and linking GUI programs
if $(UNIX) {
if $(OS) = MACOSX {
LINKFLAGS += -framework IOKit ;
LINKFLAGS += -framework CoreFoundation ;
LINKFLAGS += -framework AppKit ;
LINKFLAGS += -framework AudioToolbox ;
# Hmm. Would be nice to use pkg-config here, if system has it.
} else {
if [ GLOB /usr/X11R6/include/X11 : X.h ] {
LibWinH = /usr/X11R6/include ;
} else if [ GLOB /usr/include/X11 : X.h ] {
LibWinH = /usr/include ;
} else if [ GLOB /usr/local/include/X11 : X.h ] {
LibWinH = /usr/local/include ;
} else {
EXIT Unable to locate the X11 include files ;
}
if $(HOST64) {
if [ GLOB /usr/X11R6/lib : libX11.so libX11.a ] {
LibWinD = /usr/X11R6/lib ;
} else if [ GLOB /usr/lib/x86_64-linux-gnu : libX11.so libX11.a ] {
LibWinD = /usr/lib/x86_64-linux-gnu ;
} else if [ GLOB /usr/lib64 : libX11.so libX11.a ] {
LibWinD = /usr/lib64 ;
} else if [ GLOB /usr/lib : libX11.so libX11.a ] {
LibWinD = /usr/lib ;
} else if [ GLOB /usr/local/lib : libX11.so libX11.a ] {
LibWinD = /usr/local/lib ;
} else {
ECHO Unable to locate the 64 bit X11 library files ;
}
} else {
if [ GLOB /usr/X11R6/lib : libX11.so libX11.a ] {
LibWinD = /usr/X11R6/lib ;
} else if [ GLOB /usr/lib/i386-linux-gnu : libX11.so libX11.a ] {
LibWinD = /usr/lib/i386-linux-gnu ;
} else if [ GLOB /usr/lib : libX11.so libX11.a ] {
LibWinD = /usr/lib ;
} else if [ GLOB /usr/local/lib : libX11.so libX11.a ] {
LibWinD = /usr/local/lib ;
} else {
ECHO Unable to locate the 32 bit X11 library files ;
}
}
if $(OS) = FREEBSD {
LINKFLAGS += -g -lrt -lusb ;
GUILINKFLAGS += -L$(LibWinD) -g -lX11 -lXext -lXxf86vm -lXinerama -lXrandr -lXau -lXdmcp -lXss ;
} else if $(OS) = OPENBSD {
LINKFLAGS += ;
GUILINKFLAGS += -L$(LibWinD) -g -lX11 -lXext -lXxf86vm -lXinerama -lXrandr -lXau -lXdmcp -lXss -L/usr/local/lib ;
} else {
LINKFLAGS += -ldl -lrt ;
GUILINKFLAGS += -L$(LibWinD) -lX11 -lXext -lXxf86vm -lXinerama -lXrandr -lXau -lXdmcp -lXss ;
}
# HDRS += $(LibWinH) ;
}
}
# Standard system library support:
# Check rule. $(<) is library name, $(>) is optional alternate library name
# $(3) is optional #include sub-directory, i.e. "/openssl"
rule CheckForLibrary {
UCASE = $(<:U) ;
lcase = $(<:L) ;
libname = $(lcase) ;
subd = "" ;
if $(>) {
libname = $(>) ;
}
if $(3) {
subd = $(3) ;
}
if ! $(BUILTIN_$(UCASE)) && $(UNIX) {
if [ GLOB /usr/include$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/local/include$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/x86_64-linux-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/i386-linux-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/alpha-linux-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/aarch64-linux-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/arm-linux-gnueabi$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/arm-linux-gnueabihf$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/hppa-linux-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/i386-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/x86_64-kfreebsd-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/i386-kfreebsd-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/loongarch64-linux-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/m68k-linux-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/mips-linux-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/mipsel-linux-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/mips64el-linux-gnuabi64$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/powerpc-linux-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/powerpc-linux-gnuspe$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/powerpc64-linux-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/powerpc64le-linux-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/riscv64-linux-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/s390x-linux-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/sh4-linux-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/sparc-linux-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/sparc64-linux-gnu$(subd) : $(lcase).h $(lcase)lib.h ]
|| [ GLOB /usr/include/x86_64-linux-gnux32$(subd) : $(lcase).h $(lcase)lib.h ] {
if [ GLOB /usr/lib : lib$(lcase).so ] || [ GLOB /usr/lib : lib$(lcase).a ]
|| [ GLOB /usr/local/lib : lib$(lcase).so ]
|| [ GLOB /usr/local/lib : lib$(lcase).a ]
|| [ GLOB /usr/lib64 : lib$(lcase).so ]
|| [ GLOB /usr/lib64 : lib$(lcase).a ]
|| [ GLOB /usr/lib/x86_64-linux-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/x86_64-linux-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/i386-linux-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/i386-linux-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/alpha-linux-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/alpha-linux-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/aarch64-linux-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/aarch64-linux-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/arm-linux-gnueabi : lib$(lcase).so ]
|| [ GLOB /usr/lib/arm-linux-gnueabi : lib$(lcase).a ]
|| [ GLOB /usr/lib/arm-linux-gnueabihf : lib$(lcase).so ]
|| [ GLOB /usr/lib/arm-linux-gnueabihf : lib$(lcase).a ]
|| [ GLOB /usr/lib/hppa-linux-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/hppa-linux-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/i386-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/i386-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/x86_64-kfreebsd-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/x86_64-kfreebsd-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/i386-kfreebsd-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/i386-kfreebsd-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/loongarch64-linux-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/loongarch64-linux-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/m68k-linux-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/m68k-linux-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/mips-linux-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/mips-linux-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/mipsel-linux-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/mipsel-linux-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/mips64el-linux-gnuabi64 : lib$(lcase).so ]
|| [ GLOB /usr/lib/mips64el-linux-gnuabi64 : lib$(lcase).a ]
|| [ GLOB /usr/lib/powerpc-linux-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/powerpc-linux-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/powerpc-linux-gnuspe : lib$(lcase).so ]
|| [ GLOB /usr/lib/powerpc-linux-gnuspe : lib$(lcase).a ]
|| [ GLOB /usr/lib/powerpc64-linux-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/powerpc64-linux-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/powerpc64le-linux-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/powerpc64le-linux-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/riscv64-linux-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/riscv64-linux-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/s390x-linux-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/s390x-linux-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/sh4-linux-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/sh4-linux-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/sparc-linux-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/sparc-linux-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/sparc64-linux-gnu : lib$(lcase).so ]
|| [ GLOB /usr/lib/sparc64-linux-gnu : lib$(lcase).a ]
|| [ GLOB /usr/lib/x86_64-linux-gnux32 : lib$(lcase).so ]
|| [ GLOB /usr/lib/x86_64-linux-gnux32 : lib$(lcase).a ] {
echo "Using system $(UCASE) library" ;
$(UCASE)LIB = ;
$(UCASE)INC = ;
LINKFLAGS += $(LINKFLAG)$(lcase) ;
HAVE_$(UCASE) = true ;
}
}
}
# If nothing else, use Argyll supplied $(UCASE) library
if ! $(HAVE_$(UCASE)) || $(BUILTIN_$(UCASE)) {
echo "Using Argyll $(UCASE) library" ;
$(UCASE)LIB = ../$(libname)/lib$(lcase).lib ;
$(UCASE)INC = ../$(libname) ;
}
}
# See if we have a system TIFF, JPEG, PNG or ZLIB library.
# Note this generates: $(TIFFLIB) $(TIFFINC) $(JPEGLIB) $(JPEGINC) $(PNGLIB)
# $(PNGINC) $(ZLIBLIB) $(ZINC)
# !!!!! Add to makepackagebin.sh -sBUILTIN_XXX=true !!!!!
CheckForLibrary "TIFF" ;
CheckForLibrary "JPEG" ;
CheckForLibrary "PNG" ;
CheckForLibrary "Z" : "zlib" ;
CheckForLibrary "SSL" : : "/openssl" ;
# if OpenSSL not found:
if ! $(HAVE_SSL) {
SSLINC = ../ccast/axTLS ;
SSLLIB = ../ccast/axTLS/libaxtls ;
}
# testing
#DSTDIR = var ;
#SRCDIR = .. ;