aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile69
1 files changed, 34 insertions, 35 deletions
diff --git a/Makefile b/Makefile
index 65f5936..ebddf60 100644
--- a/Makefile
+++ b/Makefile
@@ -33,39 +33,36 @@ all:
include deps.mk
-cgo-sources = \
- src/_cgo_export.c \
- src/_cgo_export.h \
- src/_cgo_main.c \
- src/_cgo_gotypes.go \
- src/_cgo_import.go \
- src/$(NAME).cgo1.go \
- src/$(NAME).cgo2.c \
-
-libdeps = \
+cgo.go = \
src/_cgo_import.go \
src/_cgo_gotypes.go \
src/$(NAME).cgo1.go \
-objects = \
- src/$(NAME).a \
- tests/$(NAME).a \
- tests/main.a \
- $(cgo-sources) \
- src/_cgo_.o \
+cgo.c = \
+ src/_cgo_export.c \
+ src/$(NAME).cgo2.c \
+
+cgo.o = $(cgo.c:.c=.o)
sources = \
src/$(NAME).go \
derived-assets = \
- $(objects) \
+ src/_cgo_.o \
+ $(cgo.go) \
+ $(cgo.c) \
+ $(cgo.o) \
+ src/$(NAME).a \
+ tests/$(NAME).a \
+ tests/main.a \
+ tests/libbuild.a \
tests/main.bin \
- pack2.sentinel \
- src/_cgo_export.o \
- src/$(NAME).cgo2.o \
+ tests/libbuild.bin \
side-assets = \
+ src/_cgo_export.h \
+ src/_cgo_main.c \
@@ -76,39 +73,41 @@ all: $(derived-assets)
$(objects): Makefile
-# src/$(NAME).a: src/$(NAME).go
-tests/main.a: tests/main.go tests/$(NAME).a
-tests/main.a:
- go tool compile $(GOCFLAGS) -o $@ -p $(*F) -I $(@D) $*.go
-
-$(cgo-sources): src/_cgo_.o
+$(cgo.go) $(cgo.c): src/_cgo_.o
src/_cgo_.o: src/$(NAME).go
go tool cgo --objdir $(@D) src/$(NAME).go
src/_cgo_import.go: src/_cgo_.o
go tool cgo --dynpackage $(NAME) --dynimport src/_cgo_.o --dynout $@
-src/$(NAME).a: $(libdeps)
- go tool compile $(GOCFLAGS) -o $@ -p $(*F) $(libdeps)
+src/$(NAME).a: $(cgo.go) $(cgo.o)
+ go tool compile $(GOCFLAGS) -o $@ -p $(*F) $(cgo.go)
+ go tool pack r $@ $(cgo.o)
-# FIXME dependency
-pack2.sentinel: src/$(NAME).a src/_cgo_export.o src/$(NAME).cgo2.o
- go tool pack r $@ src/_cgo_export.o src/$(NAME).cgo2.o
- touch $@
+tests/$(NAME).a: tests/$(NAME).go $(cgo.go) $(cgo.o)
+ go tool compile $(GOCFLAGS) -o $@ -p $(*F) $(cgo.go) $*.go
+ go tool pack r $@ $(cgo.o)
-tests/$(NAME).a: tests/$(NAME).go src/_cgo_gotypes.go src/$(NAME).cgo1.go src/_cgo_import.go src/_cgo_export.o src/$(NAME).cgo2.o
- go tool compile $(GOCFLAGS) -o $@ -p $(*F) tests/$(NAME).go src/_cgo_gotypes.go src/$(NAME).cgo1.go src/_cgo_import.go
- go tool pack r $@ src/_cgo_export.o src/$(NAME).cgo2.o
+tests/main.a: tests/main.go tests/$(NAME).a
+ go tool compile $(GOCFLAGS) -o $@ -p $(*F) -I $(@D) $*.go
+
+tests/libbuild.a: tests/libbuild.go src/$(NAME).a
+ go tool compile $(GOCFLAGS) -o $@ -p main -I src $*.go
tests/main.bin: tests/main.a
go tool link $(GOLDFLAGS) -o $@ -L $(@D) --extldflags '-lsqlite3' $*.a
+tests/libbuild.bin: tests/libbuild.a
+ go tool link $(GOLDFLAGS) -o $@ -L src --extldflags '-lsqlite3' $*.a
+
tests.bin-check = \
tests/main.bin-check \
+ tests/libbuild.bin-check \
tests/main.bin-check: tests/main.bin
+tests/libbuild.bin-check: tests/libbuild.bin
$(tests.bin-check):
$(EXEC)$*.bin