forked from freetaxii/server
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
88 lines (65 loc) · 3 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# Copyright 2015-2018 Bret Jordan, All rights reserved.
#
# Use of this source code is governed by an Apache 2.0 license
# that can be found in the LICENSE file in the root of the source tree.
GO_CMD=go
GO_BUILD=$(GO_CMD) build
GO_CLEAN=$(GO_CMD) clean
GO_GET=$(GO_CMD) get
GO_INSTALL=$(GO_CMD) install -v
NO_COLOR=\033[0m
OK_COLOR=\033[32;01m
ERROR_COLOR=\033[31;01m
WARN_COLOR=\033[33;01m
# Binary filename
BINARY=freetaxii
VERSION=0.3.1
BUILD_DIR = srcbuild
BIN_DIR = bin
LOG_DIR = log
DB_DIR = db
ETC_DIR = etc
TEMPLATES_DIR = templates
# The build version that we want to pass in to the application during compile time
BUILD=`git rev-parse HEAD`
# Setup the -ldflags option for go build here, interpolate the variable values
# LDFLAGS=-ldflags "-X main.Build=$(BUILD)"
.PHONY: clean distro
# Default target builds FreeTAXII
default:
@echo "$(OK_COLOR)==> Please run \"make distro\"...$(NO_COLOR)";
# Installs FreeTAXII and copies needed files
distro:
@echo "$(OK_COLOR)==> Removing Existing Distribution Package...$(NO_COLOR)"; \
if [ -d $(BUILD_DIR) ] ; then rm -rf $(BUILD_DIR) ; fi
@echo "$(OK_COLOR)==> Setting Up Distribution Directories...$(NO_COLOR)"; \
mkdir -p $(BUILD_DIR)/$(BINARY)-$(VERSION)/$(BIN_DIR); \
mkdir -p $(BUILD_DIR)/$(BINARY)-$(VERSION)/$(DB_DIR); \
mkdir -p $(BUILD_DIR)/$(BINARY)-$(VERSION)/$(ETC_DIR)/tls; \
mkdir -p $(BUILD_DIR)/$(BINARY)-$(VERSION)/$(LOG_DIR); \
mkdir -p $(BUILD_DIR)/$(BINARY)-$(VERSION)/$(TEMPLATES_DIR);
@echo "$(OK_COLOR)==> Building Application Files...$(NO_COLOR)"; \
$(GO_BUILD) -v -o $(BUILD_DIR)/$(BINARY)-$(VERSION)/$(BINARY) cmd/freetaxii/freetaxii.go; \
$(GO_BUILD) -v -o $(BUILD_DIR)/$(BINARY)-$(VERSION)/$(BIN_DIR)/createSqlite3Database cmd/createdb/createSqlite3Database.go; \
$(GO_BUILD) -v -o $(BUILD_DIR)/$(BINARY)-$(VERSION)/$(BIN_DIR)/verifyconfig cmd/verifyconfig/verifyconfig.go;
@echo "$(OK_COLOR)==> Copying Needed Files...$(NO_COLOR)"; \
cp -R cmd/freetaxii/templates/* $(BUILD_DIR)/$(BINARY)-$(VERSION)/$(TEMPLATES_DIR)/; \
cp cmd/freetaxii/etc/freetaxii.conf $(BUILD_DIR)/$(BINARY)-$(VERSION)/$(ETC_DIR)/; \
touch $(BUILD_DIR)/$(BINARY)-$(VERSION)/$(LOG_DIR)/$(BINARY).log;
@echo "$(OK_COLOR)==> Creating Database File...$(NO_COLOR)"; \
cd $(BUILD_DIR)/$(BINARY)-$(VERSION)/$(BIN_DIR)/; \
./createSqlite3Database;
@echo "$(OK_COLOR)==> Move Database File To DB Directory...$(NO_COLOR)"; \
mv $(BUILD_DIR)/$(BINARY)-$(VERSION)/$(BIN_DIR)/freetaxii.db $(BUILD_DIR)/$(BINARY)-$(VERSION)/$(DB_DIR);
@echo "$(OK_COLOR)==> Creating Tarball...$(NO_COLOR)"; \
cd $(BUILD_DIR)/; \
tar -cf $(BINARY)-$(VERSION).tar $(BINARY)-$(VERSION);
@echo "$(OK_COLOR)==> Compressing Tarball...$(NO_COLOR)"; \
cd $(BUILD_DIR)/; \
gzip $(BINARY)-$(VERSION).tar;
@echo "$(OK_COLOR)==> Moving Compressed Tarball...$(NO_COLOR)"; \
mv $(BUILD_DIR)/$(BINARY)-$(VERSION).tar.gz ./
# Clean up the project: delete binaries
clean:
@echo "$(OK_COLOR)==> Removing Existing Distribution Package $(BINARY)...$(NO_COLOR)"; \
if [ -d $(BUILD_DIR) ] ; then rm -rf $(BUILD_DIR) ; fi