61 lines
1.4 KiB
Makefile
61 lines
1.4 KiB
Makefile
CC=
|
|
LD=
|
|
MKDIR=mkdir -p
|
|
RM=rm
|
|
PCFLAGS=
|
|
PLFLAGS=
|
|
LIBNAME=
|
|
OUTDIR=bin
|
|
SRCDIR=src
|
|
LFLAGS=
|
|
CFLAGS=
|
|
RMEXTRA=
|
|
GDCCBUILD=OFF
|
|
EXAMPLEO=
|
|
EXAMPLEC=
|
|
|
|
ifeq ($(GDCCBUILD),ON)
|
|
CC+=gdcc-cc
|
|
LD+=gdcc-ld
|
|
LIBNAME+=$(OUTDIR)/LoveToken.bin
|
|
PCFLAGS+=--bc-target=ZDoom -i$(SRCDIR)
|
|
LFLAGS+=--bc-target=ZDoom
|
|
EXAMPLEC+=examples/gdcc.c
|
|
# These are completely arbitrary.
|
|
EXAMPLEO+=$(OUTDIR)/libc.ir $(OUTDIR)/libGDCC.ir $(OUTDIR)/libGDCC-c.ir $(OUTDIR)/libGDCC-ZDACS-asm.ir
|
|
else
|
|
EXAMPLEC+=examples/main.c
|
|
PCFLAGS+=--std=c99 -g -ggdb -O2 -Wall -c -I$(SRCDIR)
|
|
|
|
ifeq ($(OS),Windows_NT)
|
|
CC+=mingw32-gcc
|
|
LD+=mingw32-gcc
|
|
PLFLAGS+=-shared -g -ggdb
|
|
PLFLAGS2+=-Wl,--out-implib,$(OUTDIR)/libLoveToken.a -liconv
|
|
LIBNAME+=$(OUTDIR)/LoveToken.dll
|
|
RMEXTRA+=$(OUTDIR)/libLoveToken.a
|
|
else
|
|
ifeq ($(shell uname -s), Linux)
|
|
CC+=gcc
|
|
LD+=gcc
|
|
PCFLAGS+=-fPIC
|
|
PLFLAGS2+=-liconv
|
|
LIBNAME+=$(OUTDIR)/LoveToken.so
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
all: $(OUTDIR)
|
|
$(CC) $(CFLAGS) $(PCFLAGS) -o $(OUTDIR)/lt.o $(SRCDIR)/lt.c
|
|
$(LD) $(LFLAGS) $(PLFLAGS) -o $(LIBNAME) $(OUTDIR)/lt.o $(PLFLAGS2)
|
|
|
|
$(OUTDIR):
|
|
$(MKDIR) $(OUTDIR)
|
|
|
|
clean:
|
|
$(RM) $(LIBNAME) $(OUTDIR)/lt.o $(RMEXTRA)
|
|
|
|
example: all
|
|
$(CC) $(CFLAGS) $(PCFLAGS) -o $(OUTDIR)/example.o $(EXAMPLEC)
|
|
$(LD) $(LFLAGS) -o $(OUTDIR)/example $(OUTDIR)/example.o $(EXAMPLEO) $(OUTDIR)/lt.o $(PLFLAGS2)
|