Import version 1.8.3
[s390-tools.git] / common.mak
bloba73447c7b3623967f748800d073fb69a4df8ccb8
1 ifndef $(COMMON_INCLUDED)
2 COMMON_INCLUDED = true
4 # Global definitions
5 # The variable "DISTRELEASE" should be overwritten in rpm spec files with:
6 # "make DISTRELEASE=%{release}" and "make install DISTRELEASE=%{release}"
7 VERSION = 1
8 RELEASE = 8
9 PATCHLEVEL = 3
10 DISTRELEASE = build-$(shell date +%Y%m%d)
11 S390_TOOLS_RELEASE = $(VERSION).$(RELEASE).$(PATCHLEVEL)-$(DISTRELEASE)
12 export S390_TOOLS_RELEASE
14 reldir = $(subst $(shell cd -P $(dir $(filter %common.mak,$(MAKEFILE_LIST))); \
15 pwd)/,,$(CURDIR))
17 # Cross Compiling Support
18 CROSS_COMPILE =
19 AS = $(call echocmd," AS ",/$@)$(CROSS_COMPILE)as
20 LINK = $(call echocmd," LINK ",/$@)$(CROSS_COMPILE)gcc
21 LD = $(call echocmd," LD ",/$@)$(CROSS_COMPILE)ld
22 CC = $(call echocmd," CC ",/$@)$(CROSS_COMPILE)gcc
23 LINKXX = $(call echocmd," LINKXX ",/$@)$(CROSS_COMPILE)g++
24 CXX = $(call echocmd," CXX ",/$@)$(CROSS_COMPILE)g++
25 CPP = $(call echocmd," CPP ",/$@)$(CROSS_COMPILE)gcc -E
26 AR = $(call echocmd," AR ",/$@)$(CROSS_COMPILE)ar
27 NM = $(call echocmd," NM ",/$@)$(CROSS_COMPILE)nm
28 STRIP = $(call echocmd," STRIP ",/$@)$(CROSS_COMPILE)strip
29 OBJCOPY = $(call echocmd," OBJCOPY ",/$@)$(CROSS_COMPILE)objcopy
30 OBJDUMP = $(call echocmd," OBJDUMP ",/$@)$(CROSS_COMPILE)objdump
32 INSTALL = install
33 ifneq ("${V}","1")
34 MAKEFLAGS += --quiet
35 echocmd=echo $1$(call reldir)$2;
36 else
37 echocmd=
38 endif
39 ifneq ("${W}","1")
40 WARNFLAGS = -W -Wall -Wno-unused-parameter
41 else
42 WARNFLAGS = -W -Wall
43 endif
44 CFLAGS = $(WARNFLAGS) -O3 -DS390_TOOLS_RELEASE=$(S390_TOOLS_RELEASE) \
45 $(OPT_FLAGS)
46 CXXFLAGS = $(WARNFLAGS) -O3 -DS390_TOOLS_RELEASE=$(S390_TOOLS_RELEASE) \
47 $(OPT_FLAGS)
48 export AS LD CC CPP AR NM STRIP OBJCOPY OBJDUMP INSTALL CFLAGS
50 # Support alternate install root
51 INSTROOT =
52 USRSBINDIR = $(INSTROOT)/usr/sbin
53 USRBINDIR = $(INSTROOT)/usr/bin
54 BINDIR = $(INSTROOT)/sbin
55 LIBDIR = $(INSTROOT)/lib
56 SYSCONFDIR = $(INSTROOT)/etc
57 MANDIR = $(INSTROOT)/usr/share/man
58 TOOLS_LIBDIR = $(INSTROOT)/lib/s390-tools
59 INSTDIRS = $(USRSBINDIR) $(USRBINDIR) $(BINDIR) $(LIBDIR) $(MANDIR) \
60 $(SYSCONFDIR) $(TOOLS_LIBDIR)
61 OWNER = $(shell id -un)
62 GROUP = $(shell id -gn)
63 export INSTROOT BINDIR LIBDIR MANDIR OWNER GROUP
65 # Special defines for zfcpdump
66 ZFCPDUMP_DIR = /usr/local/share/zfcpdump
67 ZFCPDUMP_IMAGE = zfcpdump.image
68 ZFCPDUMP_RD = zfcpdump.rd
69 export ZFCPDUMP_DIR ZFCPDUMP_IMAGE ZFCPDUMP_RD
71 # Overwrite implicite makefile rules for having nice compile output
72 %.o: %.c
73 $(CC) $(CPPFLAGS) $(CFLAGS) -c $<
75 %.o: %.cpp
76 $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $<
78 %: %.o
79 $(LINK) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@
81 all:
83 install_dirs:
84 for dir in $(INSTDIRS); do \
85 test -d $$dir || $(INSTALL) -g $(GROUP) -o $(OWNER) -d $$dir; \
86 done
87 for i in 1 2 3 4 5 6 7 8; do \
88 test -d $(MANDIR)/man$$i || $(INSTALL) -g $(GROUP) -o $(OWNER) \
89 -d $(MANDIR)/man$$i; \
90 done
92 install_echo:
93 $(call echocmd," INSTALL ")
95 install: install_echo install_dirs
97 clean_echo:
98 $(call echocmd," CLEAN ")
100 clean: clean_echo
101 endif