@@ -48,13 +48,15 @@ endif
4848
4949X_CFLAGS ?=
5050
51- LIBXNVCTRL_DIR ?= ../src/libXNVCtrl
51+ XNVCTRL_DIR ?= ../src/libXNVCtrl
52+ XNVCTRL_MAKEFILE ?= Makefile
53+ XNVCTRL_ARCHIVE ?= $(XNVCTRL_DIR ) /libXNVCtrl.a
5254
5355CFLAGS += $(X_CFLAGS )
54- CFLAGS += -I $(LIBXNVCTRL_DIR )
56+ CFLAGS += -I $(XNVCTRL_DIR )
5557
5658LDFLAGS += $(X_LDFLAGS )
57- LDFLAGS += -L $(LIBXNVCTRL_DIR )
59+ LDFLAGS += -L $(XNVCTRL_DIR )
5860LIBS += -lXNVCtrl -lXext -lX11
5961
6062
@@ -76,23 +78,30 @@ SAMPLE_SOURCES += nv-control-warpblend.c
7678# build rules
7779# #############################################################################
7880
79- .PHONY : all clean clobber install
81+ .PHONY : all clean clobber install build-xnvctrl
8082
8183# define the rule to build each object file
8284$(foreach src, $(SAMPLE_SOURCES), $(eval $(call DEFINE_OBJECT_RULE,TARGET,$(src))))
8385
8486# define the rule to link each sample app from its corresponding object file
8587define link_sample_from_object
86- $$(OUTPUTDIR ) /$(1:.c= ) : $$(call BUILD_OBJECT_LIST,$(1 ) )
88+ $$(OUTPUTDIR ) /$(1:.c= ) : $$(call BUILD_OBJECT_LIST,$(1 ) ) $( XNVCTRL_ARCHIVE )
8789 $$(call quiet_cmd,LINK) $$(CFLAGS ) $$(LDFLAGS ) $$(BIN_LDFLAGS ) -o $$@ $$< $$(LIBS )
8890 all:: $$(OUTPUTDIR ) /$(1:.c= )
8991 SAMPLES += $$(OUTPUTDIR ) /$(1:.c= )
9092endef
9193
9294$(foreach sample,$(SAMPLE_SOURCES),$(eval $(call link_sample_from_object,$(sample))))
9395
96+ # define the rule to build $(XNVCTRL_ARCHIVE)
97+ $(XNVCTRL_ARCHIVE ) : build-xnvctrl
98+
99+ build-xnvctrl :
100+ @$(MAKE ) -C $(XNVCTRL_DIR ) -f $(XNVCTRL_MAKEFILE )
101+
94102clean clobber :
95103 rm -rf * ~ $(OUTPUTDIR ) /* .o $(OUTPUTDIR ) /* .d $(SAMPLES )
104+ @$(MAKE ) -C $(XNVCTRL_DIR ) -f $(XNVCTRL_MAKEFILE ) clean
96105
97106install :
98107 @# don't install samples, this is just to satisfy the top-level
0 commit comments