Compile dynamically linked executables on MacOS
This commit is contained in:
parent
64e25bef9c
commit
9f3492f131
5 changed files with 26 additions and 10 deletions
3
.gitmodules
vendored
3
.gitmodules
vendored
|
|
@ -1,3 +1,6 @@
|
|||
[submodule "musl"]
|
||||
path = musl
|
||||
url = git://git.musl-libc.org/musl
|
||||
[submodule "memorymapping"]
|
||||
path = memorymapping
|
||||
url = https://github.com/NimbusKit/memorymapping
|
||||
|
|
|
|||
22
Makefile
22
Makefile
|
|
@ -1,4 +1,14 @@
|
|||
|
||||
LOLCAT_SRC = lolcat.c
|
||||
CENSOR_SRC = censor.c
|
||||
CFLAGS = -std=c11 -Wall
|
||||
|
||||
ifeq ($(shell uname -s),Darwin)
|
||||
LOLCAT_SRC += memorymapping/src/fmemopen.c
|
||||
CENSOR_SRC += memorymapping/src/fmemopen.c
|
||||
CFLAGS += -Imemorymapping/src
|
||||
endif
|
||||
|
||||
all: lolcat censor
|
||||
|
||||
.PHONY: install clean musl static
|
||||
|
|
@ -12,18 +22,18 @@ musl: musl/lib/libc.a musl/lib/crt1.o
|
|||
static: lolcat-static censor-static
|
||||
|
||||
lolcat-static: lolcat.c musl
|
||||
gcc -c -std=c11 -Wall -Imusl/include -o lolcat.o $<
|
||||
gcc -c $(CFLAGS) -Imusl/include -o lolcat.o $<
|
||||
gcc -s -nostartfiles -nodefaultlibs -nostdinc -static -ffunction-sections -fdata-sections -Wl,--gc-sections -o $@ lolcat.o musl/lib/crt1.o musl/lib/libc.a
|
||||
|
||||
censor-static: censor.c musl
|
||||
gcc -c -std=c11 -Wall -Imusl/include -o censor.o $<
|
||||
gcc -c $(CFLAGS) -Imusl/include -o censor.o $<
|
||||
gcc -s -nostartfiles -nodefaultlibs -nostdinc -static -ffunction-sections -fdata-sections -Wl,--gc-sections -o $@ censor.o musl/lib/crt1.o musl/lib/libc.a
|
||||
|
||||
lolcat: lolcat.c
|
||||
gcc -std=c11 -Wall -o $@ $<
|
||||
lolcat: $(LOLCAT_SRC)
|
||||
gcc $(CFLAGS) -o $@ $^
|
||||
|
||||
censor: censor.c
|
||||
gcc -std=c11 -Wall -o $@ $<
|
||||
censor: $(CENSOR_SRC)
|
||||
gcc $(CFLAGS) -o $@ $^
|
||||
|
||||
install: lolcat censor
|
||||
install lolcat /usr/local/bin
|
||||
|
|
|
|||
2
censor.c
2
censor.c
|
|
@ -13,8 +13,6 @@
|
|||
* 0. You just DO WHAT THE FUCK YOU WANT TO.
|
||||
*/
|
||||
|
||||
#define _GNU_SOURCE //for fmemopen
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <wchar.h>
|
||||
|
|
|
|||
8
lolcat.c
8
lolcat.c
|
|
@ -13,8 +13,6 @@
|
|||
* 0. You just DO WHAT THE FUCK YOU WANT TO.
|
||||
*/
|
||||
|
||||
#define _GNU_SOURCE //for fmemopen
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <wchar.h>
|
||||
|
|
@ -27,6 +25,12 @@
|
|||
#include <unistd.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#ifdef __APPLE__
|
||||
#include "fmemopen.h"
|
||||
#else // __APPLE__
|
||||
#define _GNU_SOURCE //for fmemopen
|
||||
#endif // __APPLE__
|
||||
|
||||
|
||||
static char helpstr[] = "\n"
|
||||
"Usage: lolcat [-h horizontal_speed] [-v vertical_speed] [--] [FILES...]\n"
|
||||
|
|
|
|||
1
memorymapping
Submodule
1
memorymapping
Submodule
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 79ce0ddd0de4b11e4944625eb866290368f867c0
|
||||
Loading…
Add table
Add a link
Reference in a new issue