build: Prefix CFLAGS and friends with OSL_.
authorAndre Noll <maan@tuebingen.mpg.de>
Sun, 17 May 2020 20:04:40 +0000 (22:04 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Sun, 7 Jun 2020 19:52:29 +0000 (21:52 +0200)
It is best practice to leave the "official" CPPFLAGS, CFLAGS and
LDFLAGS variables alone and just add them at the end of the command
line options. This way the user may override any of our settings
by setting the corresponding option in the official variable. For
example, to deactivate warnings about unused variables or functions,
one may compile with

make CFLAGS=-Wno-unused

Makefile

index 8e0f163..61ac1dc 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -28,26 +28,25 @@ y := 1
 z := 3
 VERSION := $(x).$(y).$(z)
 
 z := 3
 VERSION := $(x).$(y).$(z)
 
-# common flags
-CPPFLAGS += -DOSL_VERSION='"$(VERSION)"'
-
-CFLAGS += -Wno-sign-compare -g -Wunused -Wundef -W
-CFLAGS += -Wredundant-decls
-CFLAGS += -Os
-CFLAGS += -Wall
-CFLAGS += -Wuninitialized
-CFLAGS += -Wchar-subscripts
-CFLAGS += -Wformat-security
-CFLAGS += -Werror-implicit-function-declaration
-CFLAGS += -Wmissing-format-attribute
-CFLAGS += -Wunused-macros
-CFLAGS += -Wbad-function-cast
-CFLAGS += -fPIC
-CFLAGS += -fvisibility=hidden
-
-LDFLAGS += -Wl,-soname,$(soname)
-LDFLAGS += -Wl,-z,defs
-LDFLAGS += --shared
+OSL_CPPFLAGS += -DOSL_VERSION='"$(VERSION)"'
+
+OSL_CFLAGS += -Wno-sign-compare -g -Wunused -Wundef -W
+OSL_CFLAGS += -Wredundant-decls
+OSL_CFLAGS += -Os
+OSL_CFLAGS += -Wall
+OSL_CFLAGS += -Wuninitialized
+OSL_CFLAGS += -Wchar-subscripts
+OSL_CFLAGS += -Wformat-security
+OSL_CFLAGS += -Werror-implicit-function-declaration
+OSL_CFLAGS += -Wmissing-format-attribute
+OSL_CFLAGS += -Wunused-macros
+OSL_CFLAGS += -Wbad-function-cast
+OSL_CFLAGS += -fPIC
+OSL_CFLAGS += -fvisibility=hidden
+
+OSL_LDFLAGS += -Wl,-soname,$(soname)
+OSL_LDFLAGS += -Wl,-z,defs
+OSL_LDFLAGS += --shared
 
 # On ELf-based systems, the following conventions apply (see dhweeler's
 # Program Library HOWTO):
 
 # On ELf-based systems, the following conventions apply (see dhweeler's
 # Program Library HOWTO):
@@ -74,7 +73,9 @@ ifeq ($(findstring clean, $(MAKECMDGOALS)),)
 -include $(deps)
 endif
 %.o: %.c Makefile errtab.h
 -include $(deps)
 endif
 %.o: %.c Makefile errtab.h
-       $(CC) $(CPPFLAGS) -c -MMD -MF $(*F).d -MT $@ $(CFLAGS) $<
+       $(CC) $(OSL_CPPFLAGS) $(CPPFLAGS) \
+               -c -MMD -MF $(*F).d -MT $@ \
+               $(OSL_CFLAGS) $(CFLAGS) $<
 
 fsck.o: oslfsck.lsg.h
 oslfsck: $(fsck_objects)
 
 fsck.o: oslfsck.lsg.h
 oslfsck: $(fsck_objects)
@@ -90,7 +91,7 @@ oslfsck: $(fsck_objects)
        lopsubgen --gen-man=$@ < $<
 
 $(realname): $(objects)
        lopsubgen --gen-man=$@ < $<
 
 $(realname): $(objects)
-       $(CC) $(LDFLAGS) -o $@ $(objects)
+       $(CC) $(OSL_LDFLAGS) $(LDFLAGS) -o $@ $(objects)
 
 $(libname).sym: osl.h.in
        sed -Ene '/^int|^const/{s/.*(osl_.*)\(.*/\1/; p;}' $< > $@
 
 $(libname).sym: osl.h.in
        sed -Ene '/^int|^const/{s/.*(osl_.*)\(.*/\1/; p;}' $< > $@