From b8f802cee62430d4951990f578bcd27eba27476e Mon Sep 17 00:00:00 2001
From: Guillem Jover <guillem@hadrons.org>
Date: Sun, 12 Apr 2020 04:01:27 +0200
Subject: [PATCH libaio 11/11] build: Honour user build flags

CPPFLAGS, CFLAGS and LDFLAGS are user flags, which we need to preserve.
Any required flag that the build system needs, has to be set in some
other flag so that the build will succeed even if the user flags are
passed.

Signed-off-by: Guillem Jover <guillem@hadrons.org>
---
 harness/Makefile |  7 +++++--
 src/Makefile     | 18 +++++++++---------
 2 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/harness/Makefile b/harness/Makefile
index 84e03a6..42aa49a 100644
--- a/harness/Makefile
+++ b/harness/Makefile
@@ -6,8 +6,11 @@ PROGS:=$(PARTPROGS) $(EXTRAPROGS)
 HARNESS_SRCS:=main.c
 # io_queue.c
 
-CFLAGS+=-Wall -I../src -g -O2
+MK_CPPFLAGS := -I../src $(CPPFLAGS)
+CFLAGS = -Wall -g -O2
 #-lpthread -lrt
+MK_CFLAGS = $(CFLAGS)
+MK_LDFLAGS = main.c $(LIBAIO) -lpthread $(LDFLAGS)
 
 # Change this on the build line to run tests against the installed libraries:
 # make LIBAIO=-laio partcheck
@@ -16,7 +19,7 @@ LIBAIO?=../src/libaio.a
 all: $(PROGS)
 
 $(PROGS): %.p: %.t $(HARNESS_SRCS)
-	$(CC) $(CFLAGS) -DTEST_NAME=\"$<\" -o $@ main.c $(LIBAIO) -lpthread
+	$(CC) $(MK_CPPFLAGS) $(MK_CFLAGS) -DTEST_NAME=\"$<\" -o $@ $(MK_LDFLAGS)
 
 clean:
 	rm -f $(PROGS) *.o runtests.out rofile wofile rwfile
diff --git a/src/Makefile b/src/Makefile
index a53c43c..f6215f9 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -3,12 +3,12 @@ prefix=/usr
 includedir=$(prefix)/include
 libdir=$(prefix)/lib
 
-CFLAGS ?= -g -fomit-frame-pointer -O2
-CFLAGS += -Wall -I. -fPIC
-SO_CFLAGS=-shared $(CFLAGS)
-L_CFLAGS=$(CFLAGS)
-LINK_FLAGS=
-LINK_FLAGS+=$(LDFLAGS)
+MK_CPPFLAGS = -I.
+MK_CFLAGS = -fPIC $(CFLAGS)
+CFLAGS = -Wall -g -fomit-frame-pointer -O2
+SO_CFLAGS = -shared $(MK_CFLAGS)
+L_CFLAGS = $(MK_CFLAGS)
+MK_LDFLAGS = $(LDFLAGS)
 ENABLE_SHARED ?= 1
 
 soname=libaio.so.1
@@ -43,10 +43,10 @@ libaio_sobjs := $(patsubst %.c,%.os,$(libaio_srcs))
 $(libaio_objs) $(libaio_sobjs): libaio.h vsys_def.h
 
 %.os: %.c
-	$(CC) $(SO_CFLAGS) -c -o $@ $<
+	$(CC) $(MK_CPPFLAGS) $(SO_CFLAGS) -c -o $@ $<
 
 %.ol: %.c
-	$(CC) $(L_CFLAGS) -c -o $@ $<
+	$(CC) $(MK_CPPFLAGS) $(L_CFLAGS) -c -o $@ $<
 
 AR ?= ar
 RANLIB ?= ranlib
@@ -56,7 +56,7 @@ libaio.a: $(libaio_objs)
 	$(RANLIB) libaio.a
 
 $(libname): $(libaio_sobjs) libaio.map
-	$(CC) $(SO_CFLAGS) -Wl,--version-script=libaio.map -Wl,-soname=$(soname) -o $@ $(libaio_sobjs) $(LINK_FLAGS)
+	$(CC) $(SO_CFLAGS) -Wl,--version-script=libaio.map -Wl,-soname=$(soname) -o $@ $(libaio_sobjs) $(MK_LDFLAGS)
 
 install: $(all_targets)
 	install -D -m 644 libaio.h $(DESTDIR)$(includedir)/libaio.h
-- 
2.26.0.292.g33ef6b2f38

