Lua-based operating system, based on LuPI2, with a focus on PowerPC based Macintosh machines
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.

85 lines
1.8 KiB

# LuPI2 Makefile
# Default compiler settings.
PREFIX?=x86_64-linux-musl
CC = $(PREFIX)-gcc
CFLAGS?=-O2 -std=c99 -DLUA_COMPAT_MODULE
LDFLAGS+= -static -Ldependencies/lib-$(PREFIX)
7 years ago
# Project specific stuff
7 years ago
BUILD = bin/
SOURCE = src/c
7 years ago
CORELUA = src/lua/core
RESOURCES = resources
LIBS=-lm -lssl -lcrypto -levent_core
7 years ago
INCLUDES=-I$(SOURCE) -Isrc/c/lib/lua -Iinclude -Idependencies/include -Idependencies/include-$(PREFIX)
GENERATED=include/luares.h src/c/gen/luares.c include/res.h src/c/gen/res.c
LUAPARAMS = $(CORELUA) include/luares.h src/c/gen/luares.c lua_
RESPARAMS = $(RESOURCES) include/res.h src/c/gen/res.c res_
7 years ago
SRCDIRECTORIES = $(shell find $(SOURCE) -type d)
BUILDDIRECTORIES = $(patsubst $(SOURCE)/%, $(BUILD)%, $(SRCDIRECTORIES))
7 years ago
CFILES = $(shell find $(SOURCE) -type f -name '*.c')
OBJECTS := $(patsubst $(SOURCE)/%.c, $(BUILD)%.c.o, $(CFILES))
OUTNAME = lupi
# Targets
# Pseudo Targets
debug: CFLAGS+= -g -DLOGGING -DDEBUG
debug: build
7 years ago
winexe: $(BUILD)$(OUTNAME)
cp $(BUILD)$(OUTNAME) $(BUILD)$(OUTNAME).exe
win: LIBS+= -lws2_32
win: all winexe
win-build: LIBS+= -lws2_32
win-build: build winexe
win-debug: LIBS+= -lws2_32
win-debug: debug winexe
7 years ago
$(BUILDDIRECTORIES):
7 years ago
mkdir -p $@
7 years ago
build: smallclean $(BUILDDIRECTORIES) resources $(BUILD)$(OUTNAME)
all: clean build
$(BUILD)$(OUTNAME): $(OBJECTS)
7 years ago
$(CC) $(LDFLAGS) $(OBJECTS) -o $@ $(LIBS)
$(BUILD)%.c.o: $(SOURCE)/%.c
$(CC) -c $(CFLAGS) $(INCLUDES) $< -o $@
#Resources
resources: cleanresources
scripts/txt2c $(LUAPARAMS)
scripts/txt2c $(RESPARAMS)
# Clean rules
cleanresources:
-rm -f $(GENERATED)
mkdir -p $(SOURCE)/gen/
touch $(SOURCE)/gen/luares.c
touch include/luares.h
clean: cleanresources
7 years ago
-rm -rf $(BUILD)
smallclean:
find . -name '*~' -type f -exec rm {} \;
# Other
.PHONY: debug clean cleanresourcues resources build smallclean all