save
This commit is contained in:
58
embed/Makefile
Normal file
58
embed/Makefile
Normal file
@@ -0,0 +1,58 @@
|
||||
prefix = /usr/bin
|
||||
|
||||
YAIT_SRCS := $(wildcard yait/*.c) $(wildcard core/*.c)
|
||||
YAIT_OBJS := $(patsubst yait/%.c,c-out/obj/%.o,$(YAIT_SRCS))
|
||||
|
||||
YAIT := c-out/bin/yait
|
||||
|
||||
-include config.mak
|
||||
|
||||
ifeq ($(wildcard config.mak),)
|
||||
all:
|
||||
@echo "File config.mak not found, run configure"
|
||||
@exit 1
|
||||
else
|
||||
|
||||
all: build $(YAIT) $(YAIT_DOC)
|
||||
|
||||
build:
|
||||
mkdir -p c-out/bin
|
||||
mkdir -p c-out/obj
|
||||
|
||||
EMBED_FILES := $(wildcard embed/*)
|
||||
gen-file-embeds:
|
||||
@echo "// Generated header with embedded files" > $(EMBED_HEADER)
|
||||
@echo "#ifndef EMBEDDED_FILES_H" >> $(EMBED_HEADER)
|
||||
@echo "#define EMBEDDED_FILES_H" >> $(EMBED_HEADER)
|
||||
@echo "" >> $(EMBED_HEADER)
|
||||
@for f in $(EMBED_FILES); do \
|
||||
var=$$(echo $$f | tr './-' '__' | tr '[:lower:]' '[:upper:]'); \
|
||||
xxd -i $$f | sed "s/^unsigned char/${var}_data/" | sed "s/^unsigned int/${var}_len/" >> $(EMBED_HEADER); \
|
||||
echo "" >> $(EMBED_HEADER); \
|
||||
done
|
||||
@echo "#endif // EMBEDDED_FILES_H" >> $(EMBED_HEADER)
|
||||
|
||||
c-out/obj/%.o: yait/%.c
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
$(YAIT): $(YAIT_OBJS)
|
||||
$(CC) $(CFLAGS) -DCOMMIT=$(shell git rev-list --count --all) $^ -o $@
|
||||
|
||||
|
||||
endif
|
||||
|
||||
install:
|
||||
@echo "NOT IMPL"
|
||||
exit 1
|
||||
|
||||
uninstall:
|
||||
@echo "NOT IMPL"
|
||||
exit 1
|
||||
|
||||
clean:
|
||||
rm -rf c-out
|
||||
|
||||
dist-clean: clean
|
||||
rm -f config.mak
|
||||
|
||||
.PHONY: all clean dist-clean install uninstall build format gen-file-embeds
|
||||
56
embed/configure
vendored
Executable file
56
embed/configure
vendored
Executable file
@@ -0,0 +1,56 @@
|
||||
#!/bin/sh
|
||||
|
||||
usage() {
|
||||
cat <<EOF
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
To assign environment variables (e.g., CC, CFLAGS...), specify them as
|
||||
VAR=VALUE.
|
||||
|
||||
CC C compiler command [detected]
|
||||
CFLAGS C compiler flags [-g, ...]
|
||||
|
||||
EOF
|
||||
exit 0
|
||||
}
|
||||
|
||||
echo () { printf "%s\n" "$*" ; }
|
||||
cmdexists () { type "$1" >/dev/null 2>&1 ; }
|
||||
trycc () { test -z "$CC" && cmdexists "$1" && CC=$1 ; }
|
||||
|
||||
prefix=/usr/bin/
|
||||
CFLAGS="-Wall -Wextra -O2"
|
||||
LDFLAGS=
|
||||
CC=
|
||||
|
||||
for arg ; do
|
||||
case "$arg" in
|
||||
--help|h) usage ;;
|
||||
CFLAGS=*) CFLAGS=${arg#*=} ;;
|
||||
LDFLAGS=*) LDFLAGS=${arg#*=} ;;
|
||||
esac
|
||||
done
|
||||
|
||||
printf "checking for C compiler... "
|
||||
trycc gcc
|
||||
trycc cc
|
||||
trycc clang
|
||||
printf "%s\n" "$CC"
|
||||
|
||||
printf "checking weather C compiler works... "
|
||||
status="fail"
|
||||
tmpc="$(mktemp -d)/test.c"
|
||||
echo "typedef int x;" > "$tmpc"
|
||||
if output=$($CC $CFLAGS -c -o /dev/null "$tmpc" 2>&1) ; then
|
||||
printf "yes\n"
|
||||
else
|
||||
printf "no; %s\n" "$output"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
printf "creating config.mak... "
|
||||
printf "PREFIX=%s\n" "$prefix" > config.mak
|
||||
printf "CFLAGS=%s\n" "$CFLAGS" >> config.mak
|
||||
printf "LDFLAGS=%s\n" "$LDFLAGS" >> config.mak
|
||||
printf "CC=%s\n" "$CC" >> config.mak
|
||||
printf "done\n"
|
||||
Reference in New Issue
Block a user