diff --git a/.gitignore b/.gitignore index c48ff9b..04187ad 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,8 @@ lfs-s3 lfs-s3.sh .envrc .aws-config + +*.swp +*.swo + +output/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..bdd217d --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +include makefiles/common.mk +include makefiles/windows.mk + +clean: + rm -rf ${OUTPUT} + +${OUTPUT}/: + @mkdir $@ + +msi: ${WINDOWS}/${PROJECT}_${TAG}.msi diff --git a/makefiles/common.mk b/makefiles/common.mk new file mode 100644 index 0000000..78ff761 --- /dev/null +++ b/makefiles/common.mk @@ -0,0 +1,16 @@ +PROJECT=lfs-s3 +GO_FILE=$(shell find . -type f -name "*.go") +TAG=$(shell git describe --tags | sed 's|^v||' | sed 's|\(\.*\)-.*|\1|') +COMPILE_COMMAND=go build -ldflags="-X main.Version=${TAG}" + +OUTPUT=output +PACKAGE_FILES=package_files + +.variables: + @echo PROJECT : ${PROJECT} + @echo GO_FILE : ${GO_FILE} + @echo TAG : ${TAG} + @echo COMPILE_COMMAND : ${COMPILE_COMMAND} + @echo OUTPUT : ${OUTPUT} + @echo WINDOWS : ${WINDOWS} + diff --git a/makefiles/windows.mk b/makefiles/windows.mk new file mode 100644 index 0000000..b1d7bba --- /dev/null +++ b/makefiles/windows.mk @@ -0,0 +1,28 @@ +WINDOWS=${OUTPUT}/windows +MSI_PACKAGER=windows_msi.xml + +## Windows Packing +${WINDOWS}/: | ${OUTPUT}/ + @mkdir $@ + +${WINDOWS}/${PROJECT}.exe: ${GO_FILES} | ${WINDOWS}/ + @GOOS=windows GOARCH=amd64 ${COMPILE_COMMAND} -o $@ . + +${WINDOWS}/${PROJECT}.wxs: packaging/windows/windows_msi.xml | ${WINDOWS}/ + @cat $< | sed 's|$$VERSION|${TAG}|' > $@ + +${WINDOWS}/${PROJECT}.wixobj: ${WINDOWS}/${PROJECT}.wxs ${WINDOWS}/${PROJECT}.exe + @echo Building wixobj + @docker run --rm \ + -v $(shell pwd)/output/windows:/wix dactiv/wix candle \ + ${PROJECT}.wxs + +${WINDOWS}/${PROJECT}_${TAG}.msi: ${WINDOWS}/${PROJECT}.wixobj + @echo Building msi + @docker run --rm \ + -v $(shell pwd)/output/windows:/wix \ + dactiv/wix light \ + ${ + + + + + + + + + + + + + + + + + + + + + + + + + + +