diff --git a/Makefile b/Makefile index 2a8142b71e5..60cb180f34c 100644 --- a/Makefile +++ b/Makefile @@ -61,7 +61,7 @@ # build/config.mk SHELL = /bin/sh -HOSTS ?= freebsd openbsd rhel7 rhel5 xnu win10 +HOSTS ?= freebsd openbsd rhel7 rhel5 xnu win7 win10 SANITY := $(shell build/sanitycheck $$PPID) GNUMAKEFLAGS += --output-sync diff --git a/README.md b/README.md index 7e7ae21e7c2..82c4d86ceca 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,40 @@ # Cosmopolitan -Fast portable static native textmode executable containers. - -For an introduction to this project, please read the αcτµαlly pδrταblε εxεcµταblε -blog post and cosmopolitan libc -website. API documentation is available here. +[Cosmopolitan Libc](https://justine.lol/cosmopolitan/index.html) makes C +a build-once run-anywhere language, like Java, except it doesn't need an +interpreter or virtual machine. Instead, it reconfigures stock GCC to +output a POSIX-approved polyglot format that runs natively on Linux + +Mac + Windows + FreeBSD + OpenBSD + BIOS with the best possible +performance and the tiniest footprint imaginable. + +## Background + +For an introduction to this project, please read the [αcτµαlly pδrταblε +εxεcµταblε](https://justine.lol/ape.html) blog post and [cosmopolitan +libc](https://justine.lol/cosmopolitan/index.html) website. We also have +[API documentation](https://justine.lol/cosmopolitan/documentation.html). + +## Getting Started + +Here's how to get started with the freestanding hermetically-sealed +monolithic source repository: + +```sh +tar xf cosmopolitan-0.1.tar.gz # see our releases page +cd cosmo +make -j12 +o//examples/hello.com +``` + +Here's how to get started with the amalgamated binaries, which let you +bring your own build system: + +```sh +unzip cosmopolitan-amalgamated-0.1.zip # see our releases page +echo 'main() { printf("hello world\n"); }' >hello.c +gcc -g -O -static -fno-pie -no-pie -mno-red-zone -nostdlib -nostdinc \ + -o hello.com.dbg hello.c -Wl,--gc-sections -Wl,-z,max-page-size=0x1000 -fuse-ld=bfd \ + -Wl,-T,ape.lds -include cosmopolitan.h crt.o ape.o cosmopolitan.a +objcopy -SO binary hello.com.dbg hello.com +./hello.com +```