Skip to content

Commit

Permalink
Convert the build system to non-recursive make
Browse files Browse the repository at this point in the history
Speeds up a no-op build from 500ms to 60ms and significantly improves
dependency tracking.
  • Loading branch information
tgoyne committed Jun 17, 2014
1 parent cb71a3d commit 68eaab0
Show file tree
Hide file tree
Showing 33 changed files with 552 additions and 861 deletions.
27 changes: 1 addition & 26 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,17 +1,4 @@
include Makefile.inc

SUBDIRS += \
packages/desktop \
vendor/luajit \
vendor/universalchardet \
vendor/luabins \
libaegisub \
tools \
src \
automation \
po

all: ;
include header.mk

ifeq (yes, $(BUILD_DARWIN))
osx-bundle:
Expand All @@ -22,16 +9,4 @@ osx-dmg: osx-bundle
$(BIN_SHELL) tools/osx-dmg.sh "$(BUILD_VERSION_STRING)"
endif

DISTCLEANFILES += \
acconf.h \
configure \
acconf.h.in~ \
build/git_version.h \
Makefile.inc \
config.log \
acconf.h.in \
config.status \
autom4te.cache \
aclocal.m4 \

include Makefile.target
40 changes: 14 additions & 26 deletions Makefile.inc.in
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,24 @@ HAVE_PORTAUDIO = @with_portaudio@
HAVE_FFMS2 = @with_ffms2@
HAVE_LIBPULSE = @with_libpulse@

##############
# BUILD OUTPUT
##############
PROGRAM := $(PROGRAM)
LIB := $(LIB)

###################
# PLATFORM SETTINGS
###################
BUILD_BSD = @build_bsd@
BUILD_DARWIN = @build_darwin@
BUILD_DEFAULT = @build_default@
BUILD_LINUX = @build_linux@

#######
# FLAGS
#######
CFLAGS = @CFLAGS@
CXXFLAGS = @CXXFLAGS@
CPPFLAGS = @CPPFLAGS@
CFLAGS_DEP = -MD -MP
CFLAGS_DEP = -MMD -MP
LIBS = @LIBS@
LDFLAGS = @LDFLAGS@
INSTALL_FLAGS = -m 664
Expand All @@ -36,27 +39,18 @@ LIB_SHARED_LINK_OSX = -dynamiclib -Wl,-undefined -Wl,dynamic_lookup -compatibili
AEGISUB_COMMAND = @AEGISUB_COMMAND@
AEGISUB_CATALOG = @AEGISUB_CATALOG@
BUILD_DATE = @BUILD_DATE@
PACKAGE_TARNAME = aegisub-@BUILD_GIT_VERSION_STRING@
PACKAGE_DEBUG = @PACKAGE_DEBUG@
BUILD_VERSION_STRING = @BUILD_GIT_VERSION_STRING@

#######
# PATHS
#######
P_PREFIX = @prefix@
prefix = ${P_PREFIX}
P_PREFIX_EXEC = @exec_prefix@
exec_prefix = ${P_PREFIX_EXEC}
datarootdir = ${P_DATAROOT}
P_PREFIX = @prefix@
P_PREFIX_EXEC = @exec_prefix@
P_BINDIR = @bindir@
P_SBINDIR = @sbindir@
P_LIBEXEC = @libexecdir@
P_DATAROOT = @datarootdir@
datarootdir = ${P_DATAROOT}
P_SYSCONF = @sysconfdir@
P_SHAREDSTATE = @sharedstatedir@
P_LOCALSTATE = @localstatedir@
P_INCLUDE = @includedir@
P_LIB = @libdir@
P_LOCALE = @localedir@

P_DESKTOP = @P_DESKTOP@
Expand All @@ -83,14 +77,13 @@ CFLAGS_HUNSPELL = @HUNSPELL_CFLAGS@
CFLAGS_ICONV = @ICONV_CFLAGS@
CFLAGS_ICU = @ICU_I18N_CFLAGS@
CFLAGS_LIBASS = @LIBASS_CFLAGS@
CFLAGS_LIBCURL = @LIBCURL_CFLAGS@
CFLAGS_LIBPULSE = @LIBPULSE_CFLAGS@
CFLAGS_LUA = -I../vendor/luajit/include
CFLAGS_LUA = -I$(TOP)vendor/luajit/include
CFLAGS_OPENAL = @OPENAL_CFLAGS@
CFLAGS_OSS = @OSS_CFLAGS@
CFLAGS_PORTAUDIO = @PORTAUDIO_CFLAGS@
CFLAGS_PTHREAD = @PTHREAD_CFLAGS@
CFLAGS_UCHARDET = -I../vendor/universalchardet
CFLAGS_UCHARDET = -I$(TOP)vendor/universalchardet

LIBS_ALSA = @ALSA_LIBS@
LIBS_FFMS2 = @FFMS2_LIBS@
Expand All @@ -102,23 +95,20 @@ LIBS_HUNSPELL = @HUNSPELL_LIBS@
LIBS_ICONV = @ICONV_LIBS@
LIBS_ICU = @ICU_UC_LIBS@ @ICU_I18N_LIBS@
LIBS_LIBASS = @LIBASS_LIBS@
LIBS_LIBCURL = @LIBCURL_LIBS@
LIBS_LIBPULSE = @LIBPULSE_LIBS@
LIBS_LUA = ../vendor/luajit/src/libluajit.a
LIBS_LUA = $(TOP)vendor/luajit/src/libluajit.a
LIBS_OPENAL = @OPENAL_LIBS@
LIBS_PORTAUDIO = @PORTAUDIO_LIBS@
LIBS_PTHREAD = @PTHREAD_LIBS@
LIBS_UCHARDET ?= ../vendor/universalchardet/libuniversalchardet.a

ifeq (yes, $(BUILD_DARWIN))
LIBS_LUA = ../vendor/luajit/src/libluajit-aegisub.so
LIBS_LUA = $(TOP)vendor/luajit/src/libluajit-aegisub.so
endif

#####################
# DEBUG / DEVELOPMENT
#####################
PRECOMPILED_HEADER = @enable_gcc_prec@
ENABLE_REPORTER = @ENABLE_REPORTER@

##########
# BINARIES
Expand All @@ -141,6 +131,4 @@ BIN_MKDIR = mkdir
BIN_MKDIR_P = mkdir -p
BIN_ECHO = echo
BIN_TOUCH = touch
BIN_TAR = tar
BIN_GZIP = gzip
BIN_WX_CONFIG = @WX_CONFIG_PATH@
Loading

0 comments on commit 68eaab0

Please sign in to comment.