Switch from build.sh to a proper Makefile

This commit is contained in:
Donovan Glover 2017-12-21 12:44:57 -05:00
parent b45c34a104
commit 80e0fe2d10
No known key found for this signature in database
GPG Key ID: 8FC5F7D90A5D8F4D
2 changed files with 29 additions and 34 deletions

29
Makefile Normal file
View File

@ -0,0 +1,29 @@
SOURCES = bin/maid bin/serv bin/pass bin/mktex
.PHONY: all
all: $(SOURCES)
.PHONY: production
production: FLAGS = --release
production: $(SOURCES)
.PHONY: update
update:
shards update
.PHONY: install
install:
shards install
bin/maid: src/maid.cr
crystal build $^ -o $@ $(FLAGS)
bin/serv: src/serv.cr
crystal build $^ -o $@ $(FLAGS)
bin/pass: src/pass.cr
crystal build $^ -o $@ $(FLAGS)
bin/mktex: src/mktex.cr
crystal build $^ -o $@ $(FLAGS)

View File

@ -1,34 +0,0 @@
##################################################################################
#
# New Start: A modern Arch workflow built with an emphasis on functionality.
# Copyright (C) 2017 Donovan Glover
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
##################################################################################
# TODO: If --release then add --release to the build command
#if [ $1 = "release" ]; then
# echo "release"
#fi
# TODO: If a filename is given, build only that file and not all the files
# i.e. './build.sh maid' only builds src/maid.cr
# Build each and every file in src/, placing the output in bin/
for file in src/*.cr; do
f=${file#"src/"}
f=${f%".cr"}
crystal build src/$f.cr -o bin/$f && echo "Successfully built src/$f.cr"
done