bindata: Add infrastructure for building core mcl files
This should prepare us so that we can build native mcl code alongside the core *.go files which we already have. This includes a single mcl file that is used as a placeholder so that the build doesn't fail if we don't have any mcl files in the core/ directory. It will get ignored automatically.
This commit is contained in:
2
Makefile
2
Makefile
@@ -119,6 +119,7 @@ race:
|
|||||||
bindata: ## generate go files from non-go sources
|
bindata: ## generate go files from non-go sources
|
||||||
@echo "Generating: bindata..."
|
@echo "Generating: bindata..."
|
||||||
$(MAKE) --quiet -C bindata
|
$(MAKE) --quiet -C bindata
|
||||||
|
$(MAKE) --quiet -C lang/funcs
|
||||||
|
|
||||||
generate:
|
generate:
|
||||||
go generate
|
go generate
|
||||||
@@ -163,6 +164,7 @@ crossbuild: ${crossbuild_targets}
|
|||||||
|
|
||||||
clean: ## clean things up
|
clean: ## clean things up
|
||||||
$(MAKE) --quiet -C bindata clean
|
$(MAKE) --quiet -C bindata clean
|
||||||
|
$(MAKE) --quiet -C lang/funcs clean
|
||||||
$(MAKE) --quiet -C lang clean
|
$(MAKE) --quiet -C lang clean
|
||||||
[ ! -e $(PROGRAM) ] || rm $(PROGRAM)
|
[ ! -e $(PROGRAM) ] || rm $(PROGRAM)
|
||||||
rm -f *_stringer.go # generated by `go generate`
|
rm -f *_stringer.go # generated by `go generate`
|
||||||
|
|||||||
@@ -16,9 +16,12 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
# The bindata target generates go files from any source defined below. To use
|
# The bindata target generates go files from any source defined below. To use
|
||||||
# the files, import the "bindata" package and use:
|
# the files, import the generated "bindata" package and use:
|
||||||
# `bytes, err := bindata.Asset("FILEPATH")`
|
# `bytes, err := bindata.Asset("FILEPATH")`
|
||||||
# where FILEPATH is the path of the original input file relative to `bindata/`.
|
# where FILEPATH is the path of the original input file relative to `bindata/`.
|
||||||
|
# To get a list of files stored in this "bindata" package, you can use:
|
||||||
|
# `paths := bindata.AssetNames()` and `paths, err := bindata.AssetDir(name)`
|
||||||
|
# to get a list of files with a directory prefix.
|
||||||
|
|
||||||
.PHONY: build clean
|
.PHONY: build clean
|
||||||
default: build
|
default: build
|
||||||
@@ -34,5 +37,5 @@ bindata.go: ../COPYING
|
|||||||
@ROOT=$$(dirname "$${BASH_SOURCE}")/.. && $$ROOT/misc/header.sh '$@'
|
@ROOT=$$(dirname "$${BASH_SOURCE}")/.. && $$ROOT/misc/header.sh '$@'
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
# remove generated bindata/*.go
|
# remove generated bindata.go
|
||||||
@ROOT=$$(dirname "$${BASH_SOURCE}")/.. && rm -f *.go
|
@ROOT=$$(dirname "$${BASH_SOURCE}")/.. && rm -f bindata.go
|
||||||
|
|||||||
44
lang/funcs/Makefile
Normal file
44
lang/funcs/Makefile
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
# Mgmt
|
||||||
|
# Copyright (C) 2013-2018+ James Shubin and the project contributors
|
||||||
|
# Written by James Shubin <james@shubin.ca> and the project contributors
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# The bindata target generates go files from any source defined below. To use
|
||||||
|
# the files, import the generated "bindata" package and use:
|
||||||
|
# `bytes, err := bindata.Asset("FILEPATH")`
|
||||||
|
# where FILEPATH is the path of the original input file relative to `bindata/`.
|
||||||
|
# To get a list of files stored in this "bindata" package, you can use:
|
||||||
|
# `paths := bindata.AssetNames()` and `paths, err := bindata.AssetDir(name)`
|
||||||
|
# to get a list of files with a directory prefix.
|
||||||
|
|
||||||
|
.PHONY: build clean
|
||||||
|
default: build
|
||||||
|
|
||||||
|
MCL_FILES := $(shell find * -name '*.mcl' -not -path 'old/*' -not -path 'tmp/*')
|
||||||
|
GENERATED = bindata/bindata.go
|
||||||
|
|
||||||
|
build: $(GENERATED)
|
||||||
|
|
||||||
|
# add more input files as dependencies at the end here...
|
||||||
|
$(GENERATED): $(MCL_FILES)
|
||||||
|
@# go-bindata --pkg bindata -o <OUTPUT> <INPUT>
|
||||||
|
go-bindata --pkg bindata -o ./$@ $^
|
||||||
|
@# gofmt the output file
|
||||||
|
gofmt -s -w $@
|
||||||
|
@ROOT=$$(dirname "$${BASH_SOURCE}")/../.. && $$ROOT/misc/header.sh '$@'
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@# remove generated bindata/bindata.go
|
||||||
|
@ROOT=$$(dirname "$${BASH_SOURCE}")/../.. && rm -f $(GENERATED)
|
||||||
2
lang/funcs/bindata.mcl
Normal file
2
lang/funcs/bindata.mcl
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# You can add *.mcl files alongside the *.go files into the core/ directory.
|
||||||
|
# They will get compiled into the binary when it is built.
|
||||||
2
lang/funcs/bindata/.gitignore
vendored
Normal file
2
lang/funcs/bindata/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# this file gets generated here
|
||||||
|
bindata.go
|
||||||
19
lang/funcs/bindata/doc.go
Normal file
19
lang/funcs/bindata/doc.go
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
// Mgmt
|
||||||
|
// Copyright (C) 2013-2018+ James Shubin and the project contributors
|
||||||
|
// Written by James Shubin <james@shubin.ca> and the project contributors
|
||||||
|
//
|
||||||
|
// 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 <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
// Package bindata stores core mcl code that is built-in at compile time.
|
||||||
|
package bindata
|
||||||
Reference in New Issue
Block a user