@@ -15,7 +15,7 @@ CODEGEN_DIR=generated
15
15
CLIENT_CODEGEN_DIR =static/src/generated
16
16
17
17
GO_VERSION_FLAGS =-X 'github.com/chadweimer/gomp/metadata.BuildVersion=$(BUILD_VERSION ) '
18
- GO_LIN_LD_FLAGS =-ldflags "$(GO_VERSION_FLAGS ) -extldflags '-static -static-libgcc'"
18
+ GO_LD_FLAGS =-ldflags "$(GO_VERSION_FLAGS ) -extldflags '-static -static-libgcc'"
19
19
GO_WIN_LD_FLAGS =-ldflags "$(GO_VERSION_FLAGS ) "
20
20
GO_ENV_LIN_AMD64=GOOS =linux GOARCH=amd64 CGO_ENABLED=1
21
21
GO_ENV_LIN_ARM=GOOS =linux GOARCH=arm CGO_ENABLED=1 CC=arm-linux-gnueabihf-gcc
@@ -25,14 +25,15 @@ GO_ENV_WIN_AMD64=GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-g
25
25
GO_FILES := $(filter-out $(shell test -d $(CODEGEN_DIR ) && find ./$(CODEGEN_DIR ) -name "* ") , $(shell find . -type f -name "* .go") )
26
26
DB_MIGRATION_FILES := $(shell find db/migrations -type f -name "* .* ")
27
27
CLIENT_FILES := $(filter-out $(shell test -d $(CLIENT_CODEGEN_DIR ) && find $(CLIENT_CODEGEN_DIR ) -name "* ") , $(shell find static -maxdepth 1 -type f -name "* ") $(shell find static/src -type f -name "* ") )
28
+ OAPI_CFGS := $(shell find oapi-codegen -type f -name "* .yaml")
28
29
29
30
.DEFAULT_GOAL := build
30
31
31
32
# ---- INSTALL ----
32
33
33
34
.PHONY : install
34
35
install : $(CLIENT_INSTALL_DIR )
35
- go install github.com/deepmap/oapi-codegen/cmd/oapi-codegen@latest
36
+ go install github.com/deepmap/oapi-codegen/cmd/oapi-codegen@v1.11.0
36
37
37
38
$(CLIENT_INSTALL_DIR ) : static/package.json
38
39
cd static && npm install --silent
@@ -46,20 +47,20 @@ uninstall:
46
47
$(CLIENT_CODEGEN_DIR ) : $(CLIENT_INSTALL_DIR ) openapi.yaml models.yaml
47
48
cd static && npm run codegen
48
49
49
- $(CODEGEN_DIR ) : openapi.yaml models.yaml
50
+ $(CODEGEN_DIR ) : openapi.yaml models.yaml $( OAPI_CFGS )
50
51
rm -rf $@
51
52
mkdir -p $@ /models
52
- oapi-codegen -generate types,skip-prune -package models models.yaml > $@ /models/models.go
53
+ oapi-codegen --config oapi-codegen/ models.yaml models.yaml > $@ /models/models.go
53
54
mkdir -p $@ /api/public
54
- oapi-codegen -generate types,chi-server -package public -include-tags=public -import-mapping=./models. yaml:github.com/chadweimer/gomp/generated/models openapi.yaml > $@ /api/public/public.go
55
+ oapi-codegen --config oapi-codegen/ public. yaml openapi.yaml > $@ /api/public/public.go
55
56
mkdir -p $@ /api/viewer
56
- oapi-codegen -generate types,chi-server -package viewer -include-tags=viewer -import-mapping=./models. yaml:github.com/chadweimer/gomp/generated/models openapi.yaml > $@ /api/viewer/viewer.go
57
+ oapi-codegen --config oapi-codegen/ viewer. yaml openapi.yaml > $@ /api/viewer/viewer.go
57
58
mkdir -p $@ /api/editor
58
- oapi-codegen -generate types,chi-server -package editor -include-tags=editor -import-mapping=./models. yaml:github.com/chadweimer/gomp/generated/models openapi.yaml > $@ /api/editor/editor.go
59
+ oapi-codegen --config oapi-codegen/ editor. yaml openapi.yaml > $@ /api/editor/editor.go
59
60
mkdir -p $@ /api/admin
60
- oapi-codegen -generate types,chi-server -package admin -include-tags=admin -import-mapping=./models. yaml:github.com/chadweimer/gomp/generated/models openapi.yaml > $@ /api/admin/admin.go
61
+ oapi-codegen --config oapi-codegen/ admin. yaml openapi.yaml > $@ /api/admin/admin.go
61
62
mkdir -p $@ /api/adminOrSelf
62
- oapi-codegen -generate types,chi-server -package adminOrSelf -include-tags=adminOrSelf -import-mapping=./models. yaml:github.com/chadweimer/gomp/generated/models openapi.yaml > $@ /api/adminOrSelf/adminOrSelf.go
63
+ oapi-codegen --config oapi-codegen/ adminOrSelf. yaml openapi.yaml > $@ /api/adminOrSelf/adminOrSelf.go
63
64
64
65
65
66
# ---- LINT ----
@@ -85,6 +86,7 @@ build: $(BUILD_LIN_AMD64_DIR) $(BUILD_LIN_ARM_DIR) $(BUILD_LIN_ARM64_DIR) $(BUIL
85
86
clean : clean-linux-amd64 clean-linux-arm clean-linux-arm64 clean-windows-amd64
86
87
rm -rf $(BUILD_DIR )
87
88
rm -rf $(CODEGEN_DIR )
89
+ cd static && npm run clean
88
90
89
91
# - GENERIC ARCH -
90
92
@@ -97,61 +99,60 @@ $(BUILD_DIR)/%/db/migrations: $(DB_MIGRATION_FILES)
97
99
$(BUILD_DIR ) /% /static : $(CLIENT_BUILD_DIR )
98
100
rm -rf $@ && mkdir -p $@ && cp -R $< /* $@
99
101
100
- .PHONY : clean-client
101
- clean-client :
102
- cd static && npm run clean
102
+ $(BUILD_DIR ) /linux/% /gomp : go.mod $(CODEGEN_DIR ) $(GO_FILES )
103
+ $(GO_ENV ) go build -o $@ $(GO_LD_FLAGS )
104
+ $(BUILD_DIR ) /windows/% /gomp.exe : go.mod $(CODEGEN_DIR ) $(GO_FILES )
105
+ $(GO_ENV ) go build -o $@ $(GO_WIN_LD_FLAGS )
106
+
107
+ .PHONY : clean-$(BUILD_DIR ) /%
108
+ clean-$(BUILD_DIR ) /% :
109
+ rm -rf $(BUILD_DIR ) /$*
110
+
111
+ .PHONY : clean-$(BUILD_DIR ) /linux/% /gomp clean-$(BUILD_DIR ) /windows/% /gomp.exe
112
+ clean-$(BUILD_DIR ) /linux/% /gomp :
113
+ $(GO_ENV ) go clean -i ./...
114
+ clean-$(BUILD_DIR ) /windows/% /gomp.exe :
115
+ $(GO_ENV ) go clean -i ./...
103
116
104
117
# - AMD64 -
105
118
106
119
$(BUILD_LIN_AMD64_DIR ) : $(BUILD_LIN_AMD64_DIR ) /gomp $(BUILD_LIN_AMD64_DIR ) /db/migrations $(BUILD_LIN_AMD64_DIR ) /static
107
120
108
- $(BUILD_LIN_AMD64_DIR ) /gomp : go.mod $(CODEGEN_DIR ) $(GO_FILES )
109
- $(GO_ENV_LIN_AMD64 ) go build -o $@ $(GO_LIN_LD_FLAGS )
121
+ $(BUILD_LIN_AMD64_DIR ) /gomp : GO_ENV := $(GO_ENV_LIN_AMD64 )
110
122
111
123
.PHONY : clean-linux-amd64
112
- clean-linux-amd64 : clean-client
113
- $(GO_ENV_LIN_AMD64 ) go clean -i ./...
114
- rm -rf $(BUILD_LIN_AMD64_DIR )
115
- rm -f $(BUILD_DIR ) /gomp-linux-amd64.tar.gz
124
+ clean-linux-amd64 : GO_ENV := $(GO_ENV_LIN_AMD64 )
125
+ clean-linux-amd64 : clean-$(BUILD_LIN_AMD64_DIR ) /gomp clean-$(BUILD_LIN_AMD64_DIR ) clean-$(BUILD_DIR ) /gomp-linux-amd64.tar.gz
116
126
117
127
# - ARM32 -
118
128
119
129
$(BUILD_LIN_ARM_DIR ) : $(BUILD_LIN_ARM_DIR ) /gomp $(BUILD_LIN_ARM_DIR ) /db/migrations $(BUILD_LIN_ARM_DIR ) /static
120
130
121
- $(BUILD_LIN_ARM_DIR ) /gomp : go.mod $(CODEGEN_DIR ) $(GO_FILES )
122
- $(GO_ENV_LIN_ARM ) go build -o $@ $(GO_LIN_LD_FLAGS )
131
+ $(BUILD_LIN_ARM_DIR ) /gomp : GO_ENV := $(GO_ENV_LIN_ARM )
123
132
124
133
.PHONY : clean-linux-arm
125
- clean-linux-arm : clean-client
126
- $(GO_ENV_LIN_ARM ) go clean -i ./...
127
- rm -rf $(BUILD_LIN_ARM_DIR )
128
- rm -f $(BUILD_DIR ) /gomp-linux-arm.tar.gz
134
+ clean-linux-arm : GO_ENV := $(GO_ENV_LIN_ARM )
135
+ clean-linux-arm : clean-$(BUILD_LIN_ARM_DIR ) /gomp clean-$(BUILD_LIN_ARM_DIR ) clean-$(BUILD_DIR ) /gomp-linux-arm.tar.gz
129
136
130
137
# - ARM64 -
131
138
132
139
$(BUILD_LIN_ARM64_DIR ) : $(BUILD_LIN_ARM64_DIR ) /gomp $(BUILD_LIN_ARM64_DIR ) /db/migrations $(BUILD_LIN_ARM64_DIR ) /static
133
140
134
- $(BUILD_LIN_ARM64_DIR ) /gomp : go.mod $(CODEGEN_DIR ) $(GO_FILES )
135
- $(GO_ENV_LIN_ARM64 ) go build -o $@ $(GO_LIN_LD_FLAGS )
141
+ $(BUILD_LIN_ARM64_DIR ) /gomp : GO_ENV := $(GO_ENV_LIN_ARM64 )
136
142
137
143
.PHONY : clean-linux-arm64
138
- clean-linux-arm64 : clean-client
139
- $(GO_ENV_LIN_ARM64 ) go clean -i ./...
140
- rm -rf $(BUILD_LIN_ARM64_DIR )
141
- rm -f $(BUILD_DIR ) /gomp-linux-arm64.tar.gz
144
+ clean-linux-arm64 : GO_ENV := $(GO_ENV_LIN_ARM64 )
145
+ clean-linux-arm64 : clean-$(BUILD_LIN_ARM64_DIR ) /gomp clean-$(BUILD_LIN_ARM64_DIR ) clean-$(BUILD_DIR ) /gomp-linux-arm64.tar.gz
142
146
143
147
# - WINDOWS -
144
148
145
149
$(BUILD_WIN_AMD64_DIR ) : $(BUILD_WIN_AMD64_DIR ) /gomp.exe $(BUILD_WIN_AMD64_DIR ) /db/migrations $(BUILD_WIN_AMD64_DIR ) /static
146
150
147
- $(BUILD_WIN_AMD64_DIR ) /gomp.exe : go.mod $(CODEGEN_DIR ) $(GO_FILES )
148
- $(GO_ENV_WIN_AMD64 ) go build -o $@ $(GO_WIN_LD_FLAGS )
151
+ $(BUILD_WIN_AMD64_DIR ) /gomp.exe : GO_ENV := $(GO_ENV_WIN_AMD64 )
149
152
150
153
.PHONY : clean-windows-amd64
151
- clean-windows-amd64 : clean-client
152
- $(GO_ENV_WIN_AMD64 ) go clean -i ./...
153
- rm -rf $(BUILD_WIN_AMD64_DIR )
154
- rm -f $(BUILD_DIR ) /gomp-windows-amd64.zip
154
+ clean-windows-amd64 : GO_ENV := $(GO_ENV_WIN_AMD64 )
155
+ clean-windows-amd64 : clean-$(BUILD_WIN_AMD64_DIR ) /gomp.exe clean-$(BUILD_WIN_AMD64_DIR ) clean-$(BUILD_DIR ) /gomp-windows-amd64.zip
155
156
156
157
157
158
# ---- DOCKER ----
0 commit comments