mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-07-01 15:00:38 +00:00
Add basic make build system
This commit is contained in:
parent
7c324a6aec
commit
c1639b3979
319
Makefile
Normal file
319
Makefile
Normal file
|
@ -0,0 +1,319 @@
|
|||
|
||||
QB_VERSION := 2.3
|
||||
QB_VERSION_UNDERSCORE := $(patsubst .,_,$(QB_VERSION))
|
||||
|
||||
# Disable implicit rules
|
||||
MAKEFLAGS += --no-builtin-rules
|
||||
|
||||
EXE_OBJS :=
|
||||
EXE_LIBS :=
|
||||
|
||||
ifndef OS
|
||||
OS := lnx
|
||||
endif
|
||||
|
||||
ifeq ($(OS),lnx)
|
||||
PATH_INTERNAL := ./internal
|
||||
PATH_INTERNAL_SRC := $(PATH_INTERNAL)/source
|
||||
PATH_INTERNAL_TEMP := $(PATH_INTERNAL)/temp
|
||||
PATH_INTERNAL_C := $(PATH_INTERNAL)/c
|
||||
CP := cp -r
|
||||
RM := rm -fr
|
||||
OBJCOPY := objcopy
|
||||
FIXPATH = $1
|
||||
BITS := $(shell getconf LONG_BIT)
|
||||
|
||||
ifeq ($(BITS),)
|
||||
BITS := 64
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS),win)
|
||||
PATH_INTERNAL := internal
|
||||
PATH_INTERNAL_SRC := $(PATH_INTERNAL)\source
|
||||
PATH_INTERNAL_TEMP := $(PATH_INTERNAL)\temp
|
||||
PATH_INTERNAL_C := $(PATH_INTERNAL)\c
|
||||
SHELL := cmd
|
||||
CP := xcopy /E /C /H /R /Y
|
||||
AR := $(PATH_INTERNAL_C)\c_compiler\bin\ar.exe
|
||||
CC := $(PATH_INTERNAL_C)\c_compiler\bin\gcc.exe
|
||||
CXX := $(PATH_INTERNAL_C)\c_compiler\bin\c++.exe
|
||||
OBJCOPY := $(PATH_INTERNAL_C)\c_compiler\bin\objcopy.exe
|
||||
WINDRES := $(PATH_INTERNAL_C)\c_compiler\bin\windres.exe
|
||||
ICON_OBJ := $(PATH_INTERNAL_TEMP)\icon.o
|
||||
RM := del /Q
|
||||
FIXPATH = $(subst /,\,$1)
|
||||
ifeq ($(wildcard $(PATH_INTERNAL_C)\c_compiler\i686-w64-mingw32),)
|
||||
BITS := 64
|
||||
else
|
||||
BITS := 32
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS),osx)
|
||||
PATH_INTERNAL := ./internal
|
||||
PATH_INTERNAL_SRC := $(PATH_INTERNAL)/source
|
||||
PATH_INTERNAL_TEMP := $(PATH_INTERNAL)/temp
|
||||
PATH_INTERNAL_C := $(PATH_INTERNAL)/c
|
||||
CP := cp -r
|
||||
RM := rm -fr
|
||||
FIXPATH = $1
|
||||
BITS := 64
|
||||
endif
|
||||
|
||||
ifeq ($(BITS),64)
|
||||
OBJCOPY_FLAGS := -Oelf64-x86-64 -Bi386:x86-64
|
||||
else
|
||||
OBJCOPY_FLAGS := -Oelf32-i386 -Bi386
|
||||
endif
|
||||
|
||||
ifdef BUILD_QB64
|
||||
EXE ?= qb64
|
||||
else
|
||||
|
||||
ifneq ($(filter clean,$(MAKECMDGOALS)),)
|
||||
# We have to define this for the Makefile to work,
|
||||
# but it doesn't actually matter what it is since clean won't compile anything
|
||||
EXE := blah
|
||||
endif
|
||||
|
||||
ifndef EXE
|
||||
$(error Please provide executable name as 'EXE=executable')
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
all: $(EXE)
|
||||
|
||||
CLEAN_LIST :=
|
||||
|
||||
CXXFLAGS := -w
|
||||
|
||||
ifeq ($(OS),lnx)
|
||||
CXXLIBS := -lGL -lGLU -lX11 -lpthread -ldl -lrt
|
||||
CXXFLAGS += -DFREEGLUT_STATIC
|
||||
endif
|
||||
|
||||
ifeq ($(OS),win)
|
||||
CXXLIBS := -static-libgcc -static-libstdc++
|
||||
CXXFLAGS += -DGLEW_STATIC -DFREEGLUT_STATIC
|
||||
endif
|
||||
|
||||
ifeq ($(OS),osx)
|
||||
CXXLIBS := -framework OpenGL -framework IOKit -framework GLUT -framework Cocoa
|
||||
endif
|
||||
|
||||
QB_QBX_OBJ := $(PATH_INTERNAL_C)/qbx.o
|
||||
|
||||
$(QB_QBX_OBJ): $(wildcard $(PATH_INTERNAL)/temp/*.txt)
|
||||
|
||||
EXE_OBJS += $(QB_QBX_OBJ)
|
||||
|
||||
CLEAN_LIST += $(QB_QBX_OBJ)
|
||||
|
||||
ifdef BUILD_QB64
|
||||
# Copy the QB64 source code into temp before compiling
|
||||
ifeq ($(OS),win)
|
||||
_shell := $(shell $(CP) $(PATH_INTERNAL_SRC)\\* $(PATH_INTERNAL_TEMP)\\)
|
||||
else
|
||||
_shell := $(shell $(CP) $(PATH_INTERNAL_SRC)/* $(PATH_INTERNAL_TEMP)/)
|
||||
endif
|
||||
|
||||
# Required dependencies of QB64 itself
|
||||
DEP_FONT := y
|
||||
DEP_ICON := y
|
||||
DEP_SOCKETS := y
|
||||
endif
|
||||
|
||||
include $(PATH_INTERNAL_C)/libqb/build.mk
|
||||
include $(PATH_INTERNAL_C)/parts/audio/conversion/build.mk
|
||||
include $(PATH_INTERNAL_C)/parts/audio/decode/mp3_mini/build.mk
|
||||
include $(PATH_INTERNAL_C)/parts/audio/decode/ogg/build.mk
|
||||
include $(PATH_INTERNAL_C)/parts/audio/out/build.mk
|
||||
include $(PATH_INTERNAL_C)/parts/core/build.mk
|
||||
include $(PATH_INTERNAL_C)/parts/input/game_controller/build.mk
|
||||
include $(PATH_INTERNAL_C)/parts/video/font/ttf/build.mk
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
QBLIB_NAME := libqb_make_$(QB_VERSION_UNDERSCORE)_
|
||||
|
||||
CLEAN_LIST += $(wildcard $(PATH_INTERNAL_C)/libqb/$(QBLIB_NAME)*.o)
|
||||
|
||||
ifneq ($(filter y,$(DEP_GL)),)
|
||||
CXXFLAGS += -DDEPENDENCY_GL
|
||||
QBLIB_NAME := $(addsuffix 1,$(QBLIB_NAME))
|
||||
else
|
||||
QBLIB_NAME := $(addsuffix 0,$(QBLIB_NAME))
|
||||
endif
|
||||
|
||||
ifneq ($(filter y,$(DEP_SCREENIMAGE) $(DEP_IMAGE_CODEC)),)
|
||||
CXXFLAGS += -DDEPENDENCY_IMAGE_CODEC
|
||||
QBLIB_NAME := $(addsuffix 1,$(QBLIB_NAME))
|
||||
else
|
||||
QBLIB_NAME := $(addsuffix 0,$(QBLIB_NAME))
|
||||
endif
|
||||
|
||||
ifneq ($(filter y,$(DEP_CONSOLE_ONLY)),)
|
||||
CXXFLAGS += -DDEPENDENCY_CONSOLE_ONLY
|
||||
QBLIB_NAME := $(addsuffix 1,$(QBLIB_NAME))
|
||||
else
|
||||
QBLIB_NAME := $(addsuffix 0,$(QBLIB_NAME))
|
||||
endif
|
||||
|
||||
ifneq ($(filter y,$(DEP_SOCKETS)),)
|
||||
CXXFLAGS += -DDEPENDENCY_SOCKETS
|
||||
QBLIB_NAME := $(addsuffix 1,$(QBLIB_NAME))
|
||||
else
|
||||
CXXFLAGS += -DDEPENDENCY_NO_SOCKETS
|
||||
QBLIB_NAME := $(addsuffix 0,$(QBLIB_NAME))
|
||||
endif
|
||||
|
||||
ifneq ($(filter y,$(DEP_PRINTER)),)
|
||||
CXXFLAGS += -DDEPENDENCY_PRINTER
|
||||
QBLIB_NAME := $(addsuffix 1,$(QBLIB_NAME))
|
||||
else
|
||||
CXXFLAGS += -DDEPENDENCY_NO_PRINTER
|
||||
QBLIB_NAME := $(addsuffix 0,$(QBLIB_NAME))
|
||||
endif
|
||||
|
||||
ifneq ($(filter y,$(DEP_ICON)),)
|
||||
CXXFLAGS += -DDEPENDENCY_ICON
|
||||
EXE_OBJS += $(ICON_OBJ)
|
||||
QBLIB_NAME := $(addsuffix 1,$(QBLIB_NAME))
|
||||
else
|
||||
CXXFLAGS += -DDEPENDENCY_NO_ICON
|
||||
QBLIB_NAME := $(addsuffix 0,$(QBLIB_NAME))
|
||||
endif
|
||||
|
||||
ifneq ($(filter y,$(DEP_SCREENIMAGE)),)
|
||||
CXXFLAGS += -DDEPENDENCY_SCREENIMAGE
|
||||
QBLIB_NAME := $(addsuffix 1,$(QBLIB_NAME))
|
||||
else
|
||||
CXXFLAGS += -DDEPENDENCY_NO_SCREENIMAGE
|
||||
QBLIB_NAME := $(addsuffix 0,$(QBLIB_NAME))
|
||||
endif
|
||||
|
||||
ifneq ($(filter y,$(DEP_FONT)),)
|
||||
EXE_LIBS += $(QB_FONT_LIB)
|
||||
CXXFLAGS += -DDEPENDENCY_LOADFONT
|
||||
QBLIB_NAME := $(addsuffix 1,$(QBLIB_NAME))
|
||||
else
|
||||
QBLIB_NAME := $(addsuffix 0,$(QBLIB_NAME))
|
||||
endif
|
||||
|
||||
ifneq ($(filter y,$(DEP_DEVICEINPUT)),)
|
||||
EXE_LIBS += $(QB_DEVICE_INPUT_LIB)
|
||||
CXXFLAGS += -DDEPENDENCY_DEVICEINPUT
|
||||
QBLIB_NAME := $(addsuffix 1,$(QBLIB_NAME))
|
||||
else
|
||||
QBLIB_NAME := $(addsuffix 0,$(QBLIB_NAME))
|
||||
endif
|
||||
|
||||
ifneq ($(filter y,$(DEP_AUDIO_CONVERSION) $(DEP_AUDIO_DECODE)),)
|
||||
EXE_LIBS += $(QB_AUDIO_CONVERSION_LIB)
|
||||
CXXFLAGS += -DDEPENDENCY_AUDIO_CONVERSION
|
||||
QBLIB_NAME := $(addsuffix 1,$(QBLIB_NAME))
|
||||
else
|
||||
QBLIB_NAME := $(addsuffix 0,$(QBLIB_NAME))
|
||||
endif
|
||||
|
||||
ifneq ($(filter y,$(DEP_AUDIO_DECODE)),)
|
||||
EXE_LIBS += $(QB_AUDIO_DECODE_MP3_LIB) $(QB_AUDIO_DECODE_OGG_LIB)
|
||||
CXXFLAGS += -DDEPENDENCY_AUDIO_DECODE
|
||||
QBLIB_NAME := $(addsuffix 1,$(QBLIB_NAME))
|
||||
else
|
||||
QBLIB_NAME := $(addsuffix 0,$(QBLIB_NAME))
|
||||
endif
|
||||
|
||||
ifneq ($(filter y,$(DEP_AUDIO_OUT) $(DEP_AUDIO_CONVERSION) $(DEP_AUDIO_DECODE)),)
|
||||
EXE_LIBS += $(QB_AUDIO_OUT_LIB)
|
||||
CXXFLAGS += -DDEPENDENCY_AUDIO_OUT
|
||||
ifeq ($(OS),osx)
|
||||
CXXLIBS += -framework AudioUnit -framework AudioToolbox
|
||||
endif
|
||||
QBLIB_NAME := $(addsuffix 1,$(QBLIB_NAME))
|
||||
else
|
||||
QBLIB_NAME := $(addsuffix 0,$(QBLIB_NAME))
|
||||
endif
|
||||
|
||||
ifneq ($(filter y,$(DEP_ZLIB)),)
|
||||
CXXFLAGS += -DDEPENDENCY_ZLIB
|
||||
ifeq ($(OS),osx)
|
||||
CXXLIBS += "-lz"
|
||||
else
|
||||
CXXLIBS += "-l:libz.a"
|
||||
endif
|
||||
QBLIB_NAME := $(addsuffix 1,$(QBLIB_NAME))
|
||||
else
|
||||
QBLIB_NAME := $(addsuffix 0,$(QBLIB_NAME))
|
||||
endif
|
||||
|
||||
ifneq ($(OS),osx)
|
||||
EXE_LIBS += $(QB_CORE_LIB)
|
||||
endif
|
||||
|
||||
ifeq ($(OS),win)
|
||||
ifneq ($(filter y,$(DEP_CONSOLE_ONLY) $(DEP_CONSOLE)),)
|
||||
CXXLIBS += -mconsole
|
||||
endif
|
||||
|
||||
ifneq ($(filter y,$(DEP_CONSOLE_ONLY)),)
|
||||
CXXFLAGS := $(filter-out -DFREEGLUT_STATIC,$(CXXFLAGS))
|
||||
EXE_LIBS := $(filter-out $(QB_CORE_LIB),$(EXE_LIBS))
|
||||
else
|
||||
CXXLIBS += -mwindows -lopengl32 -lglu32 -lwinmm
|
||||
endif
|
||||
|
||||
ifneq ($(filter y,$(DEP_SOCKETS)),)
|
||||
CXXLIBS += -lws2_32
|
||||
endif
|
||||
|
||||
ifneq ($(filter y,$(DEP_PRINTER)),)
|
||||
CXXLIBS += -lwinspool
|
||||
endif
|
||||
|
||||
ifneq ($(filter y,$(DEP_AUDIO_OUT) $(DEP_AUDIO_CONVERSION) $(DEP_AUDIO_DECODE)),)
|
||||
CXXLIBS += -lwinmm -lksguid -ldxguid -lole32
|
||||
endif
|
||||
|
||||
ifneq ($(filter y,$(DEP_ICON) $(DEP_SCREENIMAGE) $(DEP_PRINTER)),)
|
||||
CXXLIBS += -lgdi32
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(filter y,$(DEP_DATA)),)
|
||||
EXE_OBJS += $(PATH_INTERNAL_TEMP)/data.o
|
||||
endif
|
||||
|
||||
QBLIB := $(PATH_INTERNAL_C)/libqb/$(QBLIB_NAME).o
|
||||
|
||||
ifneq ($(OS),osx)
|
||||
$(QBLIB): $(PATH_INTERNAL_C)/libqb.cpp
|
||||
$(CXX) $(CXXFLAGS) $< -c -o $@
|
||||
else
|
||||
$(QBLIB): $(PATH_INTERNAL_C)/libqb.mm
|
||||
$(CXX) $(CXXFLAGS) $< -c -o $@
|
||||
endif
|
||||
|
||||
ifeq ($(OS),win)
|
||||
CLEAN_LIST += $(ICON_OBJ)
|
||||
$(ICON_OBJ): $(PATH_INTERNAL_TEMP)\icon.rc
|
||||
$(WINDRES) -i $< -o $@
|
||||
endif
|
||||
|
||||
# QBLIB has to go first to ensure correct linking
|
||||
EXE_OBJS := $(QBLIB) $(EXE_OBJS)
|
||||
|
||||
%.o: %.cpp
|
||||
$(CXX) $(CXXFLAGS) $< -c -o $@
|
||||
|
||||
# FIXME: 32-bit support
|
||||
$(PATH_INTERNAL_TEMP)/data.o: $(PATH_INTERNAL_TEMP)/data.bin
|
||||
$(OBJCOPY) -Ibinary $(OBJCOPY_FLAGS) $< $@
|
||||
|
||||
clean:
|
||||
$(RM) $(call FIXPATH,$(CLEAN_LIST))
|
||||
|
||||
$(EXE): $(EXE_OBJS) $(EXE_LIBS)
|
||||
$(CXX) $(CXXFLAGS) $(EXE_OBJS) -o $@ $(EXE_LIBS) $(CXXLIBS)
|
10
internal/c/libqb/build.mk
Normal file
10
internal/c/libqb/build.mk
Normal file
|
@ -0,0 +1,10 @@
|
|||
|
||||
QB_LIBQB_SETUP_OBJS := $(PATH_INTERNAL_C)/libqb.o
|
||||
|
||||
QB_LIBQB_SETUP_LIB := $(PATH_INTERNAL_C)/libqb/src.a
|
||||
|
||||
$(QB_LIBQB_SETUP_LIB): $(QB_LIBQB_SETUP_OBJS)
|
||||
$(AR) rcs $@ $(QB_LIBQB_SETUP_OBJS)
|
||||
|
||||
CLEAN_LIST += $(QB_LIBQB_SETUP_OBJS) $(QB_LIBQB_SETUP_LIB)
|
||||
|
14
internal/c/parts/audio/conversion/build.mk
Normal file
14
internal/c/parts/audio/conversion/build.mk
Normal file
|
@ -0,0 +1,14 @@
|
|||
|
||||
AUDIO_CONVERSION_SRCS := $(wildcard $(PATH_INTERNAL_C)/parts/audio/conversion/src/*.c)
|
||||
AUDIO_CONVERSION_OBJS := $(AUDIO_CONVERSION_SRCS:.c=.o)
|
||||
|
||||
$(PATH_INTERNAL_C)/parts/audio/conversion/src/%.o: $(PATH_INTERNAL_C)/parts/audio/conversion/src/%.c
|
||||
$(CC) -Wall $< -c -o $@
|
||||
|
||||
QB_AUDIO_CONVERSION_LIB := $(PATH_INTERNAL_C)/parts/audio/conversion/src.a
|
||||
|
||||
$(QB_AUDIO_CONVERSION_LIB): $(AUDIO_CONVERSION_OBJS)
|
||||
$(AR) rcs $@ $(AUDIO_CONVERSION_OBJS)
|
||||
|
||||
CLEAN_LIST += $(AUDIO_CONVERSION_OBJS) $(QB_AUDIO_CONVERSION_LIB)
|
||||
|
14
internal/c/parts/audio/decode/mp3_mini/build.mk
Normal file
14
internal/c/parts/audio/decode/mp3_mini/build.mk
Normal file
|
@ -0,0 +1,14 @@
|
|||
|
||||
AUDIO_DECODE_MP3_SRCS := $(wildcard $(PATH_INTERNAL_C)/parts/audio/decode/mp3_mini/src/*.c)
|
||||
AUDIO_DECODE_MP3_OBJS := $(AUDIO_DECODE_MP3_SRCS:.c=.o)
|
||||
|
||||
$(PATH_INTERNAL_C)/parts/audio/decode/mp3_mini/src/%.o: $(PATH_INTERNAL_C)/parts/audio/decode/mp3_mini/src/%.c
|
||||
$(CC) -Wall $< -c -o $@
|
||||
|
||||
QB_AUDIO_DECODE_MP3_LIB := $(PATH_INTERNAL_C)/parts/audio/decode/mp3_mini/src.a
|
||||
|
||||
$(QB_AUDIO_DECODE_MP3_LIB): $(AUDIO_DECODE_MP3_OBJS)
|
||||
$(AR) rcs $@ $(AUDIO_DECODE_MP3_OBJS)
|
||||
|
||||
CLEAN_LIST += $(AUDIO_DECODE_MP3_OBJS) $(QB_AUDIO_DECODE_MP3_LIB)
|
||||
|
14
internal/c/parts/audio/decode/ogg/build.mk
Normal file
14
internal/c/parts/audio/decode/ogg/build.mk
Normal file
|
@ -0,0 +1,14 @@
|
|||
|
||||
AUDIO_DECODE_OGG_SRCS := $(wildcard $(PATH_INTERNAL_C)/parts/audio/decode/ogg/src/*.c)
|
||||
AUDIO_DECODE_OGG_OBJS := $(AUDIO_DECODE_OGG_SRCS:.c=.o)
|
||||
|
||||
$(PATH_INTERNAL_C)/parts/audio/decode/ogg/src/%.o: $(PATH_INTERNAL_C)/parts/audio/decode/ogg/src/%.c
|
||||
$(CC) -Wall $< -c -o $@
|
||||
|
||||
QB_AUDIO_DECODE_OGG_LIB := $(PATH_INTERNAL_C)/parts/audio/decode/ogg/src.a
|
||||
|
||||
$(QB_AUDIO_DECODE_OGG_LIB): $(AUDIO_DECODE_OGG_OBJS)
|
||||
$(AR) rcs $@ $(AUDIO_DECODE_OGG_OBJS)
|
||||
|
||||
CLEAN_LIST += $(AUDIO_DECODE_OGG_OBJS) $(QB_AUDIO_DECODE_OGG_LIB)
|
||||
|
110
internal/c/parts/audio/out/build.mk
Normal file
110
internal/c/parts/audio/out/build.mk
Normal file
|
@ -0,0 +1,110 @@
|
|||
|
||||
ifeq ($(OS),lnx)
|
||||
AUDIO_OUT_SRCS := \
|
||||
src/helpers.c \
|
||||
src/bs2b.c \
|
||||
src/alAuxEffectSlot.c \
|
||||
src/alBuffer.c \
|
||||
src/ALc.c \
|
||||
src/alcConfig.c \
|
||||
src/alcDedicated.c \
|
||||
src/alcEcho.c \
|
||||
src/alcModulator.c \
|
||||
src/alcReverb.c \
|
||||
src/alcRing.c \
|
||||
src/alcThread.c \
|
||||
src/alEffect.c \
|
||||
src/alError.c \
|
||||
src/alExtension.c \
|
||||
src/alFilter.c \
|
||||
src/alListener.c \
|
||||
src/alsa.c \
|
||||
src/alSource.c \
|
||||
src/alState.c \
|
||||
src/alThunk.c \
|
||||
src/ALu.c \
|
||||
src/hrtf.c \
|
||||
src/loopback.c \
|
||||
src/mixer.c \
|
||||
src/null.c \
|
||||
src/panning.c \
|
||||
src/wave.c
|
||||
endif
|
||||
|
||||
ifeq ($(OS),win)
|
||||
AUDIO_OUT_SRCS := \
|
||||
src/winmm.c \
|
||||
src/null.c \
|
||||
src/loopback.c \
|
||||
src/dsound.c \
|
||||
src/panning.c \
|
||||
src/mixer.c \
|
||||
src/hrtf.c \
|
||||
src/helpers.c \
|
||||
src/bs2b.c \
|
||||
src/ALu.c \
|
||||
src/alcThread.c \
|
||||
src/alcRing.c \
|
||||
src/alcReverb.c \
|
||||
src/alcModulator.c \
|
||||
src/alcEcho.c \
|
||||
src/alcDedicated.c \
|
||||
src/alcConfig.c \
|
||||
src/ALc.c \
|
||||
src/alThunk.c \
|
||||
src/alState.c \
|
||||
src/alSource.c \
|
||||
src/alListener.c \
|
||||
src/alFilter.c \
|
||||
src/alExtension.c \
|
||||
src/alError.c \
|
||||
src/alEffect.c \
|
||||
src/alBuffer.c \
|
||||
src/alAuxEffectSlot.c
|
||||
endif
|
||||
|
||||
ifeq ($(OS),osx)
|
||||
AUDIO_OUT_SRCS := \
|
||||
src/coreaudio.c \
|
||||
src/helpers.c \
|
||||
src/bs2b.c \
|
||||
src/alAuxEffectSlot.c \
|
||||
src/alBuffer.c \
|
||||
src/ALc.c \
|
||||
src/alcConfig.c \
|
||||
src/alcDedicated.c \
|
||||
src/alcEcho.c \
|
||||
src/alcModulator.c \
|
||||
src/alcReverb.c \
|
||||
src/alcRing.c \
|
||||
src/alcThread.c \
|
||||
src/alEffect.c \
|
||||
src/alError.c \
|
||||
src/alExtension.c \
|
||||
src/alFilter.c \
|
||||
src/alListener.c \
|
||||
src/alSource.c \
|
||||
src/alState.c \
|
||||
src/alThunk.c \
|
||||
src/ALu.c \
|
||||
src/hrtf.c \
|
||||
src/loopback.c \
|
||||
src/mixer.c \
|
||||
src/null.c \
|
||||
src/panning.c \
|
||||
src/wave.c
|
||||
endif
|
||||
|
||||
AUDIO_OUT_OBJS := $(AUDIO_OUT_SRCS:.c=.o)
|
||||
AUDIO_OUT_OBJS := $(patsubst %,$(PATH_INTERNAL_C)/parts/audio/out/%,$(AUDIO_OUT_OBJS))
|
||||
|
||||
$(PATH_INTERNAL_C)/parts/audio/out/src/%.o: $(PATH_INTERNAL_C)/parts/audio/out/src/%.c
|
||||
$(CC) -Wall -D AL_LIBTYPE_STATIC $< -c -o $@
|
||||
|
||||
QB_AUDIO_OUT_LIB := $(PATH_INTERNAL_C)/parts/audio/out/src.a
|
||||
|
||||
$(QB_AUDIO_OUT_LIB): $(AUDIO_OUT_OBJS)
|
||||
$(AR) rcs $@ $(AUDIO_OUT_OBJS)
|
||||
|
||||
CLEAN_LIST += $(AUDIO_OUT_OBJS) $(QB_AUDIO_OUT_LIB)
|
||||
|
16
internal/c/parts/core/build.mk
Normal file
16
internal/c/parts/core/build.mk
Normal file
|
@ -0,0 +1,16 @@
|
|||
|
||||
FREEGLUT_SRCS := $(wildcard $(PATH_INTERNAL_C)/parts/core/src/*.c)
|
||||
FREEGLUT_OBJS := $(FREEGLUT_SRCS:.c=.o)
|
||||
|
||||
FREEGLUT_LIB := $(PATH_INTERNAL_C)/parts/core/src.a
|
||||
|
||||
$(PATH_INTERNAL_C)/parts/core/src/%.o: $(PATH_INTERNAL_C)/parts/core/src/%.c
|
||||
$(CC) -O2 -c $< -o $@
|
||||
|
||||
$(FREEGLUT_LIB): $(FREEGLUT_OBJS)
|
||||
$(AR) rcs $@ $(FREEGLUT_OBJS)
|
||||
|
||||
QB_CORE_LIB := $(FREEGLUT_LIB)
|
||||
|
||||
CLEAN_LIST += $(FREEGLUT_LIB) $(FREEGLUT_OBJS)
|
||||
|
24
internal/c/parts/input/game_controller/build.mk
Normal file
24
internal/c/parts/input/game_controller/build.mk
Normal file
|
@ -0,0 +1,24 @@
|
|||
|
||||
ifeq ($(OS),lnx)
|
||||
GAMEPAD_SRCS := src/Gamepad_linux.c Gamepad_private.c
|
||||
endif
|
||||
|
||||
ifeq ($(OS),win)
|
||||
GAMEPAD_SRCS := src/Gamepad_windows_mm.c Gamepad_private.c
|
||||
endif
|
||||
|
||||
ifeq ($(OS),osx)
|
||||
GAMEPAD_SRCS := src/Gamepad_macosx.c Gamepad_private.c
|
||||
endif
|
||||
|
||||
GAMEPAD_OBJS := $(GAMEPAD_SRCS:.c=.o)
|
||||
GAMEPAD_OBJS := $(pabsubst %,$(PATH_INTERNAL_C)/parts/input/game_controller/%,$(GAMEPAD_OBJS))
|
||||
|
||||
$(PATH_INTERNAL_C)/parts/input/game_controller/src/%.o: $(PATH_INTERNAL_C)/parts/input/game_controller/src/%.c
|
||||
$(CC) -Wall $< -c -o $@
|
||||
|
||||
QB_DEVICE_INPUT_LIB := $(PATH_INTERNAL_C)/parts/input/game_controller/os/$(OS)/src.a
|
||||
|
||||
$(QB_DEVICE_INPUT_LIB): $(GAMEPAD_OBJS)
|
||||
$(AR) rcs $@ $(GAMEPAD_OBJS)
|
||||
|
13
internal/c/parts/video/font/ttf/build.mk
Normal file
13
internal/c/parts/video/font/ttf/build.mk
Normal file
|
@ -0,0 +1,13 @@
|
|||
|
||||
QB_FONT_OBJS := $(PATH_INTERNAL_C)/parts/video/font/ttf/src/freetypeamalgam.o
|
||||
|
||||
QB_FONT_LIB := $(PATH_INTERNAL_C)/parts/video/font/ttf/src.a
|
||||
|
||||
$(PATH_INTERNAL_C)/parts/video/font/ttf/src/%.o: $(PATH_INTERNAL_C)/parts/video/font/ttf/src/%.c
|
||||
$(CC) -Wall $< -c -o $@
|
||||
|
||||
$(QB_FONT_LIB): $(QB_FONT_OBJS)
|
||||
$(AR) rcs $@ $(QB_FONT_OBJS)
|
||||
|
||||
CLEAN_LIST += $(QB_FONT_OBJS) $(QB_FONT_LIB)
|
||||
|
Loading…
Reference in a new issue