This is a maintenance fork
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
981 B

set -ex
rm -f o/ansi/.cosmopolitan.h o/ansi/cosmopolitan.h
make -j12 o/ansi/cosmopolitan.h MODE=ansi
make -j12 o//libc/crt/crt.o o//ape/ape.o o//ape/
make -j12 o//cosmopolitan.a
rm -rf o/cosmo
mkdir -p o/cosmo
cp o//ape/ape.o \
o//ape/ \
o//libc/crt/crt.o \
o//cosmopolitan.a \
echo '#ifndef COSMOPOLITAN_H_'
echo '#define COSMOPOLITAN_H_'
echo '#ifdef __cplusplus'
echo 'extern "C" {'
echo '#endif'
cat o/ansi/cosmopolitan.h
echo '#ifdef __cplusplus'
echo '} /* extern C */'
echo '#endif'
echo '#endif /* COSMOPOLITAN_H_ */'
} >o/cosmo/cosmopolitan.h
cd o/cosmo
cat <<EOF >HELLO.C
int main(int argc, char *argv[]) {
printf("hello world\n");
return 0;
gcc -O -s -static -nostdlib -nostdinc \
-Wl,-T, -include cosmopolitan.h \
-o HELLO.COM.DBG HELLO.C crt.o ape.o cosmopolitan.a
objcopy -SO binary HELLO.COM.DBG HELLO.COM
ls -hal ./HELLO.COM