util: add ofc (one file compile) script

This commit is contained in:
Connor Olding 2022-10-05 10:12:37 -07:00
parent e726ca606b
commit 1751749274
2 changed files with 13 additions and 1 deletions

View File

@ -3,7 +3,7 @@
FROM alpine:3.16 as partial
# need this for acquire (.tar.xz files):
RUN apk add --no-cache xz
COPY --chmod=0755 acquire cosmocc dedupe quickconf shed \
COPY --chmod=0755 acquire cosmocc dedupe ofc quickconf shed \
/usr/local/bin/
RUN ln -s /usr/local/bin /nu
WORKDIR /media/common

12
notwa-util/ofc Executable file
View File

@ -0,0 +1,12 @@
#!/usr/bin/env sh
: "${CC:=cc}" "${LDFLAGS=-Wl,--gc-sections}" "${CFLAGS=-Os -g -Wall -Wextra \
-Wwrite-strings -Wformat=2 -Wno-unused -ffunction-sections -fdata-sections}" \
&& compile() { "$CC" $CFLAGS $CPPFLAGS -c -o "$n$obj" "$c" ;} \
&& link() { "$CC" $LDFLAGS -o "$n$dbg" "$n$obj" $LIBS ;} \
&& finish() { "${STRIP:-strip}" "$n$dbg" -o "$n$exe" ;} \
&& obj=.o dbg=.dbg exe= \
&& if [ cosmocc = "${CC##*/}" ]; then dbg=.com.dbg exe=.com \
&& finish() { "${OBJCOPY:-objcopy}" -S -O binary "$n$dbg" "$n$exe" ;} \
;fi \
&& for c in "$@"; do n="${c%.*}" && compile && link && finish || exit; done \
;