11SRC_DIR = src
2- BUILD_DIR ?= build
32
43# the `-Wno`s quiet C90 warnings
54PG_CFLAGS = -std=c11 -Wextra -Wall -Werror \
@@ -23,32 +22,41 @@ REGRESS_OPTS = --use-existing --inputdir=test
2322
2423MODULE_big = $(EXTENSION )
2524SRC = $(wildcard $(SRC_DIR ) /* .c)
25+
26+ ifdef BUILD_DIR
2627OBJS = $(patsubst $(SRC_DIR ) /% .c, $(BUILD_DIR ) /% .o, $(SRC ) )
28+ else
29+ OBJS = $(patsubst $(SRC_DIR ) /% .c, src/% .o, $(SRC ) ) # if no BUILD_DIR, just build on src so standard PGXS `make` works
30+ endif
2731
2832PG_CONFIG = pg_config
2933SHLIB_LINK = -lcurl
3034
3135# Find <curl/curl.h> from system headers
3236PG_CPPFLAGS := $(CPPFLAGS ) -DEXTVERSION=\"$(EXTVERSION ) \"
3337
34- build : $(BUILD_DIR ) /$(EXTENSION ) .so $(BUILD_DIR ) /$(EXTENSION ) --$(EXTVERSION ) .sql $(BUILD_DIR ) /$(EXTENSION ) .control
38+ all : sql/$(EXTENSION ) --$(EXTVERSION ) .sql $(EXTENSION ) .control
39+
40+ build : $(BUILD_DIR ) /$(EXTENSION ) .so sql/$(EXTENSION ) --$(EXTVERSION ) .sql $(EXTENSION ) .control
3541
36- $(BUILD_DIR ) /.gitignore :
42+ $(BUILD_DIR ) /.gitignore : sql/ $( EXTENSION ) -- $( EXTVERSION ) .sql $( EXTENSION ) .control
3743 mkdir -p $(BUILD_DIR )
44+ cp $(EXTENSION ) .control $(BUILD_DIR )
45+ cp sql/$(EXTENSION ) --$(EXTVERSION ) .sql $(BUILD_DIR )
3846 echo " *" > $(BUILD_DIR ) /.gitignore
3947
4048$(BUILD_DIR ) /% .o : $(SRC_DIR ) /% .c $(BUILD_DIR ) /.gitignore
4149 $(CC ) $(CPPFLAGS ) $(CFLAGS ) -c $< -o $@
4250
43- $(BUILD_DIR ) /$(EXTENSION ) --$(EXTVERSION ) .sql : sql/$(EXTENSION ) .sql
44- cp $< $@
45-
46- $(BUILD_DIR ) /$(EXTENSION ) .control :
47- sed " s/@PG_NET_VERSION@/$( EXTVERSION) /g" $(EXTENSION ) .control.in > $@
48-
4951$(BUILD_DIR ) /$(EXTENSION ) .so : $(EXTENSION ) .so
5052 mv $? $@
5153
54+ sql/$(EXTENSION ) --$(EXTVERSION ) .sql : sql/$(EXTENSION ) .sql
55+ cp $< $@
56+
57+ $(EXTENSION ) .control :
58+ sed " s/@EXTVERSION@/$( EXTVERSION) /g" $(EXTENSION ) .control.in > $@
59+
5260PGXS := $(shell $(PG_CONFIG ) --pgxs)
5361include $(PGXS )
5462
0 commit comments