[PATCH] build: Support O= for out-of-tree output
Johannes Berg
johannes at sipsolutions.net
Sun Oct 4 06:32:56 PDT 2026
From: Johannes Berg <johannes.berg at intel.com>
Various build artifacts are built in tree, even though in the past
I made objects go to BUILDDIR to avoid clashes between hostapd and
wpa_supplicant. In particular, binaries are built in-tree.
We have a need/desire to build with different configurations from
the same tree, and CONFIG_FILE= already lets us use an external
configuration, but binaries are written into the tree anyway, so
multiple builds clobber each other.
Add (somewhat kernel-style) O= support to the build system, so we
can do things like
make O=.../build1 CONFIG_FILE=... hostapd
putting the hostapd binary in the .../build1/hostapd directory.
I've made it require CONFIG_FILE since otherwise it's not very
isolated, and overwriting a .config for multiple builds would be
causing trouble for parallel builds, seemed better to me to just
reject that case than create surprising behaviour.
In the implementation, most changes are mechanical, adding $(OBIN)
and using "$@" for the output file instead of repeating it.
However, all of the Makefiles now list OUTPUTS= for the above
command line to work, otherwise you'd have to instead write
make O=.../build1 CONFIG_FILE=... .../build1/hostapd/hostapd
which seemed annoying enough to warrant adding OUTPUTS= and
creating rules from it in build.rules.
I've also made BUILDDIR get passed through as an absolute path
internally, wlantest seemed to need that.
Signed-off-by: Johannes Berg <johannes.berg at intel.com>
---
hostapd/Makefile | 23 ++++-----
hs20/client/Makefile | 5 +-
src/build.rules | 22 +++++++--
wlantest/Makefile | 13 ++---
wpa_supplicant/Makefile | 106 +++++++++++++++++++++-------------------
5 files changed, 98 insertions(+), 71 deletions(-)
diff --git a/hostapd/Makefile b/hostapd/Makefile
index 1ecafdc5591e..2f0342277efe 100644
--- a/hostapd/Makefile
+++ b/hostapd/Makefile
@@ -1,4 +1,5 @@
ALL=hostapd hostapd_cli
+OUTPUTS = $(ALL) nt_password_hash hlr_auc_gw sae_pk_gen
CONFIG_FILE = .config
include ../src/build.rules
@@ -1380,7 +1381,7 @@ CFLAGS += -DCONFIG_PROCESS_COORDINATION
OBJS += ../src/common/proc_coord.o
endif
-$(DESTDIR)$(BINDIR)/%: %
+$(DESTDIR)$(BINDIR)/%: $(OBIN)%
install -D $(<) $(@)
install: $(addprefix $(DESTDIR)$(BINDIR)/,$(ALL))
@@ -1388,8 +1389,8 @@ install: $(addprefix $(DESTDIR)$(BINDIR)/,$(ALL))
_OBJS_VAR := OBJS
include ../src/objs.mk
-hostapd: $(OBJS)
- $(Q)$(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS)
+$(OBIN)hostapd: $(OBJS)
+ $(Q)$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
@$(E) " LD " $@
ifdef CONFIG_WPA_TRACE
@@ -1399,8 +1400,8 @@ endif
_OBJS_VAR := OBJS_c
include ../src/objs.mk
-hostapd_cli: $(OBJS_c)
- $(Q)$(CC) $(LDFLAGS) -o hostapd_cli $(OBJS_c) $(LIBS_c)
+$(OBIN)hostapd_cli: $(OBJS_c)
+ $(Q)$(CC) $(LDFLAGS) -o $@ $(OBJS_c) $(LIBS_c)
@$(E) " LD " $@
NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o $(SHA1OBJS)
@@ -1480,16 +1481,16 @@ include ../src/objs.mk
_OBJS_VAR := SOBJS
include ../src/objs.mk
-nt_password_hash: $(NOBJS)
- $(Q)$(CC) $(LDFLAGS) -o nt_password_hash $(NOBJS) $(LIBS_n)
+$(OBIN)nt_password_hash: $(NOBJS)
+ $(Q)$(CC) $(LDFLAGS) -o $@ $(NOBJS) $(LIBS_n)
@$(E) " LD " $@
-hlr_auc_gw: $(HOBJS)
- $(Q)$(CC) $(LDFLAGS) -o hlr_auc_gw $(HOBJS) $(LIBS_h)
+$(OBIN)hlr_auc_gw: $(HOBJS)
+ $(Q)$(CC) $(LDFLAGS) -o $@ $(HOBJS) $(LIBS_h)
@$(E) " LD " $@
-sae_pk_gen: $(SOBJS)
- $(Q)$(CC) $(LDFLAGS) -o sae_pk_gen $(SOBJS) $(LIBS_s)
+$(OBIN)sae_pk_gen: $(SOBJS)
+ $(Q)$(CC) $(LDFLAGS) -o $@ $(SOBJS) $(LIBS_s)
@$(E) " LD " $@
.PHONY: lcov-html
diff --git a/hs20/client/Makefile b/hs20/client/Makefile
index 9e65dc63e8d5..2d2fa74e6f10 100644
--- a/hs20/client/Makefile
+++ b/hs20/client/Makefile
@@ -1,4 +1,5 @@
ALL=hs20-osu-client
+OUTPUTS = $(ALL)
include ../../src/build.rules
@@ -70,8 +71,8 @@ LIBS += -lssl -lcrypto
_OBJS_VAR := OBJS
include ../../src/objs.mk
-hs20-osu-client: $(OBJS)
- $(Q)$(LDO) $(LDFLAGS) -o hs20-osu-client $(OBJS) $(LIBS)
+$(OBIN)hs20-osu-client: $(OBJS)
+ $(Q)$(LDO) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
@$(E) " LD " $@
clean: common-clean
diff --git a/src/build.rules b/src/build.rules
index eb6759ac2068..16cd1627fce8 100644
--- a/src/build.rules
+++ b/src/build.rules
@@ -7,8 +7,14 @@ all: _all
# setup some variables
ROOTDIR := $(dir $(lastword $(MAKEFILE_LIST)))
ROOTDIR := $(dir $(ROOTDIR:%../src/=%))../
-BUILDDIR ?= $(abspath $(ROOTDIR)build)
-BUILDDIR := $(BUILDDIR:%/=%)
+BUILDDIR ?= $(ROOTDIR)build
+ifneq ($(O),)
+override BUILDDIR := $(O)
+ifeq ($(origin CONFIG_FILE),file)
+$(error O= requires CONFIG_FILE= to be given as well)
+endif
+endif
+override BUILDDIR := $(abspath $(BUILDDIR))
ABSROOT := $(abspath $(ROOTDIR))
ifeq ($(origin OUT),command line)
_PROJ := $(OUT:%/=%)
@@ -62,6 +68,16 @@ _all: $(VERIFY) $(ALL) $(EXTRA_TARGETS)
COVSUFFIX := $(if $(CONFIG_CODE_COVERAGE),-cov,)
PROJ := $(_PROJ)$(COVSUFFIX)
+# With O=, linked outputs go to the object directory too, and their
+# plain names (listed in OUTPUTS) become aliases for them.
+ifneq ($(O),)
+OBIN := $(BUILDDIR)/$(PROJ)/
+ifneq ($(OUTPUTS),)
+.PHONY: $(OUTPUTS)
+$(OUTPUTS): %: $(OBIN)%
+endif
+endif
+
Q=@
E=echo
ifeq ($(V), 1)
@@ -103,7 +119,7 @@ lib_phony:
# nothing
$(BUILDDIR)/$(PROJ)/%.a: $(CONFIG_FILE) lib_phony
- $(Q)$(MAKE) -C $(ROOTDIR)$(dir $(@:$(BUILDDIR)/$(PROJ)/%=%)) OUT=$(abspath $(dir $@))/
+ $(Q)$(MAKE) -C $(ROOTDIR)$(dir $(@:$(BUILDDIR)/$(PROJ)/%=%)) OUT=$(abspath $(dir $@))/ BUILDDIR=$(BUILDDIR) O=
BUILDOBJ = $(patsubst %,$(BUILDDIR)/$(PROJ)/%,$(patsubst $(ROOTDIR)%,%,$(1)))
diff --git a/wlantest/Makefile b/wlantest/Makefile
index c01452d04cad..8ef339c75530 100644
--- a/wlantest/Makefile
+++ b/wlantest/Makefile
@@ -1,4 +1,5 @@
ALL=wlantest wlantest_cli test_vectors
+OUTPUTS = $(ALL)
include ../src/build.rules
@@ -76,14 +77,14 @@ include ../src/objs.mk
_OBJS_VAR := OWN_LIBS
include ../src/objs.mk
-wlantest: $(OBJS) $(OWN_LIBS)
- $(LDO) $(LDFLAGS) -o wlantest $(OBJS) $(OWN_LIBS) $(LIBS)
+$(OBIN)wlantest: $(OBJS) $(OWN_LIBS)
+ $(LDO) $(LDFLAGS) -o $@ $(OBJS) $(OWN_LIBS) $(LIBS)
-wlantest_cli: $(OBJS_cli) $(OWN_LIBS)
- $(LDO) $(LDFLAGS) -o wlantest_cli $(OBJS_cli) $(OWN_LIBS) $(LIBS)
+$(OBIN)wlantest_cli: $(OBJS_cli) $(OWN_LIBS)
+ $(LDO) $(LDFLAGS) -o $@ $(OBJS_cli) $(OWN_LIBS) $(LIBS)
-test_vectors: $(TOBJS) $(OWN_LIBS)
- $(LDO) $(LDFLAGS) -o test_vectors $(TOBJS) $(OWN_LIBS) $(LIBS)
+$(OBIN)test_vectors: $(TOBJS) $(OWN_LIBS)
+ $(LDO) $(LDFLAGS) -o $@ $(TOBJS) $(OWN_LIBS) $(LIBS)
clean: common-clean
rm -f core *~
diff --git a/wpa_supplicant/Makefile b/wpa_supplicant/Makefile
index 6de5ce571d92..d8afd718c715 100644
--- a/wpa_supplicant/Makefile
+++ b/wpa_supplicant/Makefile
@@ -9,6 +9,12 @@ ALL += dbus/fi.w1.wpa_supplicant1.service
EXTRA_TARGETS=dynamic_eap_methods
+OUTPUTS = $(ALL) wpa_passphrase wpa_priv eapol_test preauth_test nfc_pw_token
+OUTPUTS += libwpa_client.a libwpa_client.so libwpa_client.a libpasn.so
+OUTPUTS += libwpa_test1 libwpa_test2
+OUTPUTS += win_if_list wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe
+OUTPUTS += win_if_list.exe eapol_test.exe
+
CONFIG_FILE=.config
include ../src/build.rules
@@ -81,30 +87,30 @@ mkconfig:
echo CONFIG_DRIVER_NL80211=y >> .config
echo CONFIG_DRIVER_WEXT=y >> .config
-$(DESTDIR)$(BINDIR)/%: %
+$(DESTDIR)$(BINDIR)/%: $(OBIN)%
install -D $(<) $(@)
install: $(addprefix $(DESTDIR)$(BINDIR)/,$(BINALL))
$(MAKE) -C ../src install
ifndef CONFIG_NO_WPA_PASSPHRASE
- install -D wpa_passphrase $(DESTDIR)/$(BINDIR)/wpa_passphrase
+ install -D $(OBIN)wpa_passphrase $(DESTDIR)/$(BINDIR)/wpa_passphrase
endif
ifdef CONFIG_BUILD_PASN_SO
- install -m 0644 -D libpasn.so $(DESTDIR)/$(LIBDIR)/libpasn.so
+ install -m 0644 -D $(OBIN)libpasn.so $(DESTDIR)/$(LIBDIR)/libpasn.so
endif
ifdef CONFIG_BUILD_WPA_CLIENT_SO
- install -m 0644 -D libwpa_client.so $(DESTDIR)/$(LIBDIR)/libwpa_client.so
+ install -m 0644 -D $(OBIN)libwpa_client.so $(DESTDIR)/$(LIBDIR)/libwpa_client.so
install -m 0644 -D ../src/common/wpa_ctrl.h $(DESTDIR)/$(INCDIR)/wpa_ctrl.h
endif
ifdef CONFIG_BUILD_WPA_CLIENT_STATIC
- install -m 0644 -D libwpa_client.a $(DESTDIR)/$(LIBDIR)/libwpa_client.a
+ install -m 0644 -D $(OBIN)libwpa_client.a $(DESTDIR)/$(LIBDIR)/libwpa_client.a
install -m 0644 -D ../src/common/wpa_ctrl.h $(DESTDIR)/$(INCDIR)/wpa_ctrl.h
endif
- if ls eap_*.so >/dev/null 2>&1; then \
+ if ls $(OBIN)eap_*.so >/dev/null 2>&1; then \
install -d $(DESTDIR)$(LIBDIR)/wpa_supplicant && \
- cp *.so $(DESTDIR)$(LIBDIR)/wpa_supplicant \
+ cp $(OBIN)*.so $(DESTDIR)$(LIBDIR)/wpa_supplicant \
; fi
ifdef CONFIG_FIPS
@@ -2092,42 +2098,42 @@ ifdef CONFIG_NO_TKIP
CFLAGS += -DCONFIG_NO_TKIP
endif
-dynamic_eap_methods: $(EAPDYN)
+dynamic_eap_methods: $(addprefix $(OBIN),$(EAPDYN))
_OBJS_VAR := OBJS_priv
include ../src/objs.mk
-wpa_priv: $(BCHECK) $(OBJS_priv)
- $(Q)$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
+$(OBIN)wpa_priv: $(BCHECK) $(OBJS_priv)
+ $(Q)$(LDO) $(LDFLAGS) -o $@ $(OBJS_priv) $(LIBS)
@$(E) " LD " $@
_OBJS_VAR := OBJS
include ../src/objs.mk
-wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
- $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
+$(OBIN)wpa_supplicant: $(BCHECK) $(OBJS) $(addprefix $(OBIN),$(EXTRA_progs))
+ $(Q)$(LDO) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) $(EXTRALIBS)
@$(E) " LD " $@
_OBJS_VAR := OBJS_t
include ../src/objs.mk
-eapol_test: $(OBJS_t)
- $(Q)$(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS)
+$(OBIN)eapol_test: $(OBJS_t)
+ $(Q)$(LDO) $(LDFLAGS) -o $@ $(OBJS_t) $(LIBS)
@$(E) " LD " $@
_OBJS_VAR := OBJS_t2
include ../src/objs.mk
-preauth_test: $(OBJS_t2)
- $(Q)$(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS)
+$(OBIN)preauth_test: $(OBJS_t2)
+ $(Q)$(LDO) $(LDFLAGS) -o $@ $(OBJS_t2) $(LIBS)
@$(E) " LD " $@
_OBJS_VAR := OBJS_p
include ../src/objs.mk
-wpa_passphrase: $(OBJS_p)
- $(Q)$(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p) $(LIBS)
+$(OBIN)wpa_passphrase: $(OBJS_p)
+ $(Q)$(LDO) $(LDFLAGS) -o $@ $(OBJS_p) $(LIBS_p) $(LIBS)
@$(E) " LD " $@
_OBJS_VAR := OBJS_c
include ../src/objs.mk
-wpa_cli: $(OBJS_c)
- $(Q)$(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
+$(OBIN)wpa_cli: $(OBJS_c)
+ $(Q)$(LDO) $(LDFLAGS) -o $@ $(OBJS_c) $(LIBS_c)
@$(E) " LD " $@
LIBCTRL += ../src/common/wpa_ctrl.o
@@ -2141,114 +2147,116 @@ LIBCTRLSO += ../src/utils/wpa_debug.c
_OBJS_VAR := LIBCTRL
include ../src/objs.mk
-libwpa_client.a: $(LIBCTRL)
+$(OBIN)libwpa_client.a: $(LIBCTRL)
$(Q)rm -f $@
$(Q)$(AR) crs $@ $?
@$(E) " AR " $@
-libwpa_client.so: $(LIBCTRLSO)
+$(OBIN)libwpa_client.so: $(LIBCTRLSO) | _make_dirs
@$(E) " CC $@ ($^)"
$(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -fPIC $^
OBJS_wpatest := libwpa_test.o
_OBJS_VAR := OBJS_wpatest
include ../src/objs.mk
-libwpa_test1: $(OBJS_wpatest) libwpa_client.a
- $(Q)$(LDO) $(LDFLAGS) -o libwpa_test1 $(OBJS_wpatest) libwpa_client.a $(LIBS_c)
+$(OBIN)libwpa_test1: $(OBJS_wpatest) $(OBIN)libwpa_client.a
+ $(Q)$(LDO) $(LDFLAGS) -o $@ $(OBJS_wpatest) $(OBIN)libwpa_client.a $(LIBS_c)
@$(E) " LD " $@
-libwpa_test2: $(OBJS_wpatest) libwpa_client.so
- $(Q)$(LDO) $(LDFLAGS) -o libwpa_test2 $(OBJS_wpatest) -L. -lwpa_client $(LIBS_c)
+$(OBIN)libwpa_test2: $(OBJS_wpatest) $(OBIN)libwpa_client.so
+ $(Q)$(LDO) $(LDFLAGS) -o $@ $(OBJS_wpatest) -L$(dir $(OBIN)libwpa_client.so) -lwpa_client $(LIBS_c)
@$(E) " LD " $@
_OBJS_VAR := OBJS_nfc
include ../src/objs.mk
-nfc_pw_token: $(OBJS_nfc)
- $(Q)$(LDO) $(LDFLAGS) -o nfc_pw_token $(OBJS_nfc) $(LIBS)
+$(OBIN)nfc_pw_token: $(OBJS_nfc)
+ $(Q)$(LDO) $(LDFLAGS) -o $@ $(OBJS_nfc) $(LIBS)
@$(E) " LD " $@
-win_if_list: win_if_list.c
+$(OBIN)win_if_list: win_if_list.c | _make_dirs
$(Q)$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w)
@$(E) " LD " $@
-eap_psk.so: $(SRC_EAP_PSK)
+$(OBIN)eap_psk.so: $(SRC_EAP_PSK) | _make_dirs
$(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
-Deap_peer_psk_register=eap_peer_method_dynamic_init
@$(E) " CC/LD " $@
-eap_pax.so: $(SRC_EAP_PAX)
+$(OBIN)eap_pax.so: $(SRC_EAP_PAX) | _make_dirs
$(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
-D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
@$(E) " CC/LD " $@
-eap_peap.so: $(SRC_EAP_PEAP)
+$(OBIN)eap_peap.so: $(SRC_EAP_PEAP) | _make_dirs
$(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
-D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
@$(E) " CC/LD " $@
-eap_sake.so: $(SRC_EAP_SAKE)
+$(OBIN)eap_sake.so: $(SRC_EAP_SAKE) | _make_dirs
$(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
-D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
@$(E) " CC/LD " $@
-eap_ikev2.so: $(SRC_EAP_IKEV2)
+$(OBIN)eap_ikev2.so: $(SRC_EAP_IKEV2) | _make_dirs
$(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
-D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
@$(E) " CC/LD " $@
-eap_eke.so: $(SRC_EAP_EKE)
+$(OBIN)eap_eke.so: $(SRC_EAP_EKE) | _make_dirs
$(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
-D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
@$(E) " CC/LD " $@
-eap_mschapv2.so: $(SRC_EAP_MSCHAPV2)
+$(OBIN)eap_mschapv2.so: $(SRC_EAP_MSCHAPV2) | _make_dirs
$(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
-D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
@$(E) " CC/LD " $@
-eap_fast.so: $(SRC_EAP_FAST)
+$(OBIN)eap_fast.so: $(SRC_EAP_FAST) | _make_dirs
$(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
-D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
@$(E) " CC/LD " $@
-eap_teap.so: $(SRC_EAP_TEAP)
+$(OBIN)eap_teap.so: $(SRC_EAP_TEAP) | _make_dirs
$(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
-D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
@$(E) " CC/LD " $@
-eap_gpsk.so: $(SRC_EAP_GPSK)
+$(OBIN)eap_gpsk.so: $(SRC_EAP_GPSK) | _make_dirs
$(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
-D$(@F:eap_%.so=eap_peer_%)_register=eap_peer_method_dynamic_init
@$(E) " CC/LD " $@
-%.so: ../src/eap_peer/%.c
+$(OBIN)%.so: ../src/eap_peer/%.c | _make_dirs
$(Q)$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \
-D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init
@$(E) " CC/LD " $@
-%.service: %.service.in
+$(OBIN)%.service: %.service.in
+ @mkdir -p $(@D)
$(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
@$(E) " sed" $<
-%@.service: %.service.arg.in
+$(OBIN)%@.service: %.service.arg.in
+ @mkdir -p $(@D)
$(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
@$(E) " sed" $<
-wpa_supplicant.exe: wpa_supplicant
+$(OBIN)wpa_supplicant.exe: $(OBIN)wpa_supplicant
mv -f $< $@
-wpa_cli.exe: wpa_cli
+$(OBIN)wpa_cli.exe: $(OBIN)wpa_cli
mv -f $< $@
-wpa_passphrase.exe: wpa_passphrase
+$(OBIN)wpa_passphrase.exe: $(OBIN)wpa_passphrase
mv -f $< $@
-win_if_list.exe: win_if_list
+$(OBIN)win_if_list.exe: $(OBIN)win_if_list
mv -f $< $@
-eapol_test.exe: eapol_test
+$(OBIN)eapol_test.exe: $(OBIN)eapol_test
mv -f $< $@
WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
windows-bin: $(WINALL)
- $(STRIP) $(WINALL)
+ $(STRIP) $(addprefix $(OBIN),$(WINALL))
wpa_gui:
@echo "wpa_gui has been removed - see wpa_gui-qt4 for replacement"
@@ -2424,7 +2432,7 @@ LIBPASNSO += ../src/pasn/pasn_initiator.c
LIBPASNSO += ../src/pasn/pasn_responder.c
LIBPASNSO += ../src/pasn/pasn_common.c
-libpasn.so: $(LIBPASNSO)
+$(OBIN)libpasn.so: $(LIBPASNSO) | _make_dirs
@$(E) " CC $@ ($^)"
$(Q)$(CC) $(LDFLAGS) -o $@ $(PASN_CFLAGS) -shared -fPIC $^ -lcrypto $(LIBPASNSO_DEP)
--
2.55.0
More information about the Hostap
mailing list