diff options
-rw-r--r-- | Makefile | 94 | ||||
-rw-r--r-- | README.md | 6 | ||||
-rw-r--r-- | mk/c11-ext1.libs | 5 | ||||
-rw-r--r-- | mk/c11-ext1.vars | 3 | ||||
-rw-r--r-- | mk/c11.libs | 6 | ||||
-rw-r--r-- | mk/c11.vars | 3 | ||||
-rw-r--r-- | mk/c18-ext1.libs | 4 | ||||
-rw-r--r-- | mk/c18-ext1.vars | 3 | ||||
-rw-r--r-- | mk/c18.libs | 8 | ||||
-rw-r--r-- | mk/c18.vars | 3 | ||||
-rw-r--r-- | mk/c89.libs | 6 | ||||
-rw-r--r-- | mk/c89.vars | 3 | ||||
-rw-r--r-- | mk/c94.libs | 5 | ||||
-rw-r--r-- | mk/c94.vars | 3 | ||||
-rw-r--r-- | mk/c99.libs | 6 | ||||
-rw-r--r-- | mk/c99.vars | 3 | ||||
-rw-r--r-- | mk/current | 3 | ||||
-rw-r--r-- | mk/posix-1.libs | 6 | ||||
-rw-r--r-- | mk/posix-1.vars | 3 | ||||
-rw-r--r-- | mk/posix-1993.vars | 3 | ||||
-rw-r--r-- | mk/posix-1995.vars | 3 | ||||
-rw-r--r-- | mk/posix-2.libs | 6 | ||||
-rw-r--r-- | mk/posix-2.vars | 3 | ||||
-rw-r--r-- | mk/posix-2001.vars | 3 | ||||
-rw-r--r-- | mk/posix-2008.vars | 3 | ||||
-rw-r--r-- | mk/xopen-4.libs | 5 | ||||
-rw-r--r-- | mk/xopen-4.vars | 3 | ||||
-rw-r--r-- | mk/xopen-400.libs | 5 | ||||
-rw-r--r-- | mk/xopen-400.vars | 4 | ||||
-rw-r--r-- | mk/xopen-500.libs | 6 | ||||
-rw-r--r-- | mk/xopen-500.vars | 3 | ||||
-rw-r--r-- | mk/xopen-600.libs | 6 | ||||
-rw-r--r-- | mk/xopen-600.vars | 3 | ||||
-rw-r--r-- | mk/xopen-700.libs | 6 | ||||
-rw-r--r-- | mk/xopen-700.vars | 3 |
35 files changed, 160 insertions, 78 deletions
@@ -4,7 +4,7 @@ AR=ar ARFLAGS=rU -BASE_CFLAGS=-g -O0 -Wall -Wextra -Werror -nostdinc -fno-builtin -fno-stack-protector -fPIC -I$(INCDIR) -Isrc -D__UNG_INTERNAL__ +CFLAGS=-g -O0 -Wall -Wextra -Werror -nostdinc -fno-builtin -fno-stack-protector -fPIC -I$(INCDIR) -Isrc -D__UNG_INTERNAL__ OBJDIR=obj SRCDIR=src @@ -16,11 +16,13 @@ SRCDIR=$(TOPDIR)/src INCDIR=/lib/include OBJDIR=./obj -include mk/configured.mk +include mk/current all: libung.so include mk/all.mk +include mk/$(TARGET).vars +include mk/$(TARGET).libs cleandeps: $(RM) -f mk/*.mk @@ -35,87 +37,29 @@ newdeps: cleandeps libung.so: libc.a libm.a $(CC) -o libung.so -shared obj/*.o -c89 c90: - printf '.POSIX:\n\n' > mk/configured.mk - printf 'CC=c89\n' >> mk/configured.mk - printf 'CFLAGS=$$(BASE_CFLAGS) $(CFLAGS)\n' >> mk/configured.mk - printf 'all: libc_C.0\n' >> mk/configured.mk - printf 'all: libc_C.1\n' >> mk/configured.mk - printf 'all: libm_C.0\n' >> mk/configured.mk - printf 'all: libm_C.1\n' >> mk/configured.mk +c89 c94 c99 c11 c11-ext1 c18 c18-ext1 posix-1 posix-2 posix-1993 posix-1995 posix-2001 posix-2008 xopen-4 xopen-400 xopen-500 xopen-600 xopen-700: clean + printf '.POSIX:\n\nTARGET=$@\n' > mk/current $(MAKE) -# 199409 -c94 c95 amd1: - printf '.POSIX:\n\n' > mk/configured.mk - printf 'CC=c89\n' >> mk/configured.mk - printf 'CFLAGS=-std=c94 $$(BASE_CFLAGS) $(CFLAGS)\n' >> mk/configured.mk - printf 'all: libc_C.0\n' >> mk/configured.mk - printf 'all: libc_C.1\n' >> mk/configured.mk - printf 'all: libc_C.199409\n' >> mk/configured.mk - printf 'all: libm_C.0\n' >> mk/configured.mk - printf 'all: libm_C.1\n' >> mk/configured.mk - $(MAKE) - - -# 199901 -c99: - printf '.POSIX:\n\n' > mk/configured.mk - printf 'CC=c99\n' >> mk/configured.mk - printf 'CFLAGS=$$(BASE_CFLAGS) $(CFLAGS)\n' >> mk/configured.mk - printf 'all: libc_C.0\n' >> mk/configured.mk - printf 'all: libc_C.1\n' >> mk/configured.mk - printf 'all: libc_C.199409\n' >> mk/configured.mk - printf 'all: libc_C.199901\n' >> mk/configured.mk - printf 'all: libm_C.0\n' >> mk/configured.mk - printf 'all: libm_C.1\n' >> mk/configured.mk - printf 'all: libm_C.199901\n' >> mk/configured.mk - $(MAKE) - -# 201112 -c11: -c11+ext1: c11 - -# 201710 -c17 c18: -c17+ext1 c18+ext1: c18 - -# _POSIX_SOURCE -posix-1: c89 +# aliases +c90: c89 +c95 amd1: c94 +c17: c18 +c17-ext1: c18-ext1 +# TODO: allow AMD1 with POSIX.1, POSIX.2, SUSv1 posix-1+amd1 posix-1+c94 posix-1+c95: c94 - -# _POSIX_C_SOURCE 2 -posix-2: c89 posix-1+amd1 posix-1+c94 posix-1+c95: c94 - -# _POSIX_C_SOURCE 199309 -posix-1993: c89 posix-1+amd1 posix-1+c94 posix-1+c95: c94 -# _POSIX_C_SOURCE 199506 -posix-1995: c94 - -# _POSIX_C_SOURCE 200112 -posix-2001: c99 - -# _POSIX_C_SOURCE 200809 -posix-2008: c99 - -# _XOPEN_SOURCE < 500 # TODO: +amd1 -xopen-4 xpg-4: posix-1993 - -# _XOPEN_EXTENDED_UNIX # TODO: +amd1 -susv1 xopen-4-extended xpg-4-extended: xopen-4 - -# _XOPEN_SOURCE 500 -susv2 xopen-500 xpg-5: posix-1995 - -# _XOPEN_SOURCE 600 -susv3 xopen-600 xpg-6: posix-2001 +# TODO: SUSv4 + C18, SUSv4 + C18 + EXT1 -# _XOPEN_SOURCE 700 # TODO: +c11/c18(+ext1) -susv4 xopen-700 xpg-7: posix-2008 +# aliases +xpg-4: xopen-4 +susv1 xopen-4-extended xpg-4-extended: xopen-400 +susv2 xpg-5: xopen-500 +susv3 xpg-6: xopen-600 +susv4 xpg-7: xopen-700 deps: $(MAKE) -f mk/deps.mk @@ -7,9 +7,9 @@ ISO C support, you'll want one of the following targets: * c94 - ISO/IEC 9899:1990/AMD1:1995, AKA C94, C95 * c99 - ISO/IEC 9899:1999, AKA C99 * c11 - ISO/IEC 9899:2011, AKA C11 -* c11+ext1 - ISO/IEC 9899:2011, AKA C11, with Extension 1 +* c11-ext1 - ISO/IEC 9899:2011, AKA C11, with Extension 1 * c18 - ISO/IEC 9899:2018, AKA C18 -* c18+ext1 - ISO/IEC 9899:2018, AKA C18, with Extension 1 +* c18-ext1 - ISO/IEC 9899:2018, AKA C18, with Extension 1 For basic POSIX support: @@ -33,7 +33,7 @@ SUSv4 library, run: make susv4 If you run `make` without any targets, it will default to the most recently -selected target. The default target straight from git is `c18+ext1`. +selected target. The default target straight from git is `c18-ext1`. Code Organization ----------------- diff --git a/mk/c11-ext1.libs b/mk/c11-ext1.libs new file mode 100644 index 00000000..bc2fe396 --- /dev/null +++ b/mk/c11-ext1.libs @@ -0,0 +1,5 @@ +.POSIX: + +include mk/c11.libs + +libc.a: libc_C_X1.201112 diff --git a/mk/c11-ext1.vars b/mk/c11-ext1.vars new file mode 100644 index 00000000..14973d04 --- /dev/null +++ b/mk/c11-ext1.vars @@ -0,0 +1,3 @@ +.POSIX: + +CC=c11 -D__STDC_WANT_LIB_EXT1__ diff --git a/mk/c11.libs b/mk/c11.libs new file mode 100644 index 00000000..57ea8730 --- /dev/null +++ b/mk/c11.libs @@ -0,0 +1,6 @@ +.POSIX: + +include mk/c99.libs + +libc.a: libc_C.201112 +libpthread.a: libpthread_C.20112 diff --git a/mk/c11.vars b/mk/c11.vars new file mode 100644 index 00000000..0c0ee1ea --- /dev/null +++ b/mk/c11.vars @@ -0,0 +1,3 @@ +.POSIX: + +CC=c11 diff --git a/mk/c18-ext1.libs b/mk/c18-ext1.libs new file mode 100644 index 00000000..829112b3 --- /dev/null +++ b/mk/c18-ext1.libs @@ -0,0 +1,4 @@ +.POSIX: + +include mk/c18.libs +include mk/c11-ext1.libs diff --git a/mk/c18-ext1.vars b/mk/c18-ext1.vars new file mode 100644 index 00000000..eb4e28e3 --- /dev/null +++ b/mk/c18-ext1.vars @@ -0,0 +1,3 @@ +.POSIX: + +CC=c18 -D__STDC_WANT_LIB_EXT1__ diff --git a/mk/c18.libs b/mk/c18.libs new file mode 100644 index 00000000..5ba813f8 --- /dev/null +++ b/mk/c18.libs @@ -0,0 +1,8 @@ +.POSIX: + +include mk/c11.libs + +# There aren't actually any new functions in C18 +#libc.a: libc_C.201710 +#libc.a: libm_C.201710 +#libc.a: libpthread_C.201710 diff --git a/mk/c18.vars b/mk/c18.vars new file mode 100644 index 00000000..d99d4270 --- /dev/null +++ b/mk/c18.vars @@ -0,0 +1,3 @@ +.POSIX: + +CC=c18 diff --git a/mk/c89.libs b/mk/c89.libs new file mode 100644 index 00000000..075e2786 --- /dev/null +++ b/mk/c89.libs @@ -0,0 +1,6 @@ +.POSIX: + +libc.a: libc_C.0 +libc.a: libc_C.1 +libm.a: libm_C.0 +libm.a: libm_C.1 diff --git a/mk/c89.vars b/mk/c89.vars new file mode 100644 index 00000000..ac7a1bd3 --- /dev/null +++ b/mk/c89.vars @@ -0,0 +1,3 @@ +.POSIX: + +CC=c89 diff --git a/mk/c94.libs b/mk/c94.libs new file mode 100644 index 00000000..8b72f9af --- /dev/null +++ b/mk/c94.libs @@ -0,0 +1,5 @@ +.POSIX: + +include mk/c89.libs + +all: libc_C.199409 diff --git a/mk/c94.vars b/mk/c94.vars new file mode 100644 index 00000000..5ce1761a --- /dev/null +++ b/mk/c94.vars @@ -0,0 +1,3 @@ +.POSIX: + +CC=c89 -std=c94 diff --git a/mk/c99.libs b/mk/c99.libs new file mode 100644 index 00000000..92e3854c --- /dev/null +++ b/mk/c99.libs @@ -0,0 +1,6 @@ +.POSIX: + +include mk/c94.libs + +all: libc_C.199901 +all: libm_C.199901 diff --git a/mk/c99.vars b/mk/c99.vars new file mode 100644 index 00000000..1f31f19f --- /dev/null +++ b/mk/c99.vars @@ -0,0 +1,3 @@ +.POSIX: + +CC=c99 diff --git a/mk/current b/mk/current new file mode 100644 index 00000000..e8e98d54 --- /dev/null +++ b/mk/current @@ -0,0 +1,3 @@ +.POSIX: + +TARGET=c99 diff --git a/mk/posix-1.libs b/mk/posix-1.libs new file mode 100644 index 00000000..ce583fa9 --- /dev/null +++ b/mk/posix-1.libs @@ -0,0 +1,6 @@ +.POSIX: + +include mk/c89.libs + +libc.a: libc_POSIX.1 +libm.a: libm_POSIX.1 diff --git a/mk/posix-1.vars b/mk/posix-1.vars new file mode 100644 index 00000000..e6917b82 --- /dev/null +++ b/mk/posix-1.vars @@ -0,0 +1,3 @@ +.POSIX: + +CC=c89 -D_POSIX_SOURCE diff --git a/mk/posix-1993.vars b/mk/posix-1993.vars new file mode 100644 index 00000000..78684a39 --- /dev/null +++ b/mk/posix-1993.vars @@ -0,0 +1,3 @@ +.POSIX: + +CC=c89 -D_POSIX_C_SOURCE=199309L diff --git a/mk/posix-1995.vars b/mk/posix-1995.vars new file mode 100644 index 00000000..7dd7c021 --- /dev/null +++ b/mk/posix-1995.vars @@ -0,0 +1,3 @@ +.POSIX: + +CC=c89 -std=c94 -D_POSIX_C_SOURCE=199506L diff --git a/mk/posix-2.libs b/mk/posix-2.libs new file mode 100644 index 00000000..7b1de210 --- /dev/null +++ b/mk/posix-2.libs @@ -0,0 +1,6 @@ +.POSIX: + +include mk/posix-1.libs + +libc.a: libc_POSIX.2 +libm.a: libm_POSIX.2 diff --git a/mk/posix-2.vars b/mk/posix-2.vars new file mode 100644 index 00000000..b223a5f8 --- /dev/null +++ b/mk/posix-2.vars @@ -0,0 +1,3 @@ +.POSIX: + +CC=c89 -D_POSIX_C_SOURCE=2 diff --git a/mk/posix-2001.vars b/mk/posix-2001.vars new file mode 100644 index 00000000..c323b6ef --- /dev/null +++ b/mk/posix-2001.vars @@ -0,0 +1,3 @@ +.POSIX: + +CC=c99 -D_POSIX_C_SOURCE=200112L diff --git a/mk/posix-2008.vars b/mk/posix-2008.vars new file mode 100644 index 00000000..aa3516cd --- /dev/null +++ b/mk/posix-2008.vars @@ -0,0 +1,3 @@ +.POSIX: + +CC=c99 -D_POSIX_C_SOURCE=200809L diff --git a/mk/xopen-4.libs b/mk/xopen-4.libs new file mode 100644 index 00000000..8969afba --- /dev/null +++ b/mk/xopen-4.libs @@ -0,0 +1,5 @@ +.POSIX: + +include mk/posix-1993.libs + +libc.a: libc_XOPEN.4 diff --git a/mk/xopen-4.vars b/mk/xopen-4.vars new file mode 100644 index 00000000..41f75b30 --- /dev/null +++ b/mk/xopen-4.vars @@ -0,0 +1,3 @@ +.POSIX: + +CC=c89 -D_XOPEN_SOURCE diff --git a/mk/xopen-400.libs b/mk/xopen-400.libs new file mode 100644 index 00000000..6c9e0d46 --- /dev/null +++ b/mk/xopen-400.libs @@ -0,0 +1,5 @@ +.POSIX: + +include mk/xopen-4.libs + +libc.a: libc_XOPEN.400 diff --git a/mk/xopen-400.vars b/mk/xopen-400.vars new file mode 100644 index 00000000..fb85c9fe --- /dev/null +++ b/mk/xopen-400.vars @@ -0,0 +1,4 @@ +.POSIX: + +# TODO: verify the second FTM +CC=c89 -D_XOPEN_SOURCE -D_XOPEN_UNIX_EXTENDED diff --git a/mk/xopen-500.libs b/mk/xopen-500.libs new file mode 100644 index 00000000..c1fb167c --- /dev/null +++ b/mk/xopen-500.libs @@ -0,0 +1,6 @@ +.POSIX: + +include mk/xopen-400.libs +include mk/posix-1995.libs + +libc.a: libc_XOPEN.500 diff --git a/mk/xopen-500.vars b/mk/xopen-500.vars new file mode 100644 index 00000000..9bff522b --- /dev/null +++ b/mk/xopen-500.vars @@ -0,0 +1,3 @@ +.POSIX: + +CC=c89 -std=c94 -D_XOPEN_SOURCE=500 diff --git a/mk/xopen-600.libs b/mk/xopen-600.libs new file mode 100644 index 00000000..c4d282cd --- /dev/null +++ b/mk/xopen-600.libs @@ -0,0 +1,6 @@ +.POSIX: + +include mk/xopen-500.libs +include mk/posix-2001.libs + +libc.a: libc_XOPEN.600 diff --git a/mk/xopen-600.vars b/mk/xopen-600.vars new file mode 100644 index 00000000..a75629fe --- /dev/null +++ b/mk/xopen-600.vars @@ -0,0 +1,3 @@ +.POSIX: + +CC=c99 -D_XOPEN_SOURCE=600 diff --git a/mk/xopen-700.libs b/mk/xopen-700.libs new file mode 100644 index 00000000..b470c0b7 --- /dev/null +++ b/mk/xopen-700.libs @@ -0,0 +1,6 @@ +.POSIX: + +include mk/xopen-600.libs +include mk/posix-2008.libs + +libc.a: libc_XOPEN.700 diff --git a/mk/xopen-700.vars b/mk/xopen-700.vars new file mode 100644 index 00000000..d7300804 --- /dev/null +++ b/mk/xopen-700.vars @@ -0,0 +1,3 @@ +.POSIX: + +CC=c99 -D_XOPEN_SOURCE=700 |