diff options
| author | Mike Pall <mike> | 2009-12-08 22:27:14 +0100 |
|---|---|---|
| committer | Mike Pall <mike> | 2009-12-08 22:27:14 +0100 |
| commit | ec2442862fa684851ce38de5a837adee0725329e (patch) | |
| tree | fd01217ab6b487fd087089d8c94675b4f1a416ed /src | |
| parent | 6163a90d6d09e53e8a22079e95af5ecc8b97e9cc (diff) | |
| download | luajit-ec2442862fa684851ce38de5a837adee0725329e.tar.gz luajit-ec2442862fa684851ce38de5a837adee0725329e.tar.bz2 luajit-ec2442862fa684851ce38de5a837adee0725329e.zip | |
Reorg Makefile to allow more overrides on the make command line.
Diffstat (limited to 'src')
| -rw-r--r-- | src/Makefile | 74 |
1 files changed, 41 insertions, 33 deletions
diff --git a/src/Makefile b/src/Makefile index a4a8152b..cd246af8 100644 --- a/src/Makefile +++ b/src/Makefile | |||
| @@ -110,9 +110,20 @@ BUILDMODE= mixed | |||
| 110 | # Flags and options for host and target. | 110 | # Flags and options for host and target. |
| 111 | ############################################################################## | 111 | ############################################################################## |
| 112 | 112 | ||
| 113 | CCOPTIONS= $(CCDEBUG) $(CCOPT) $(CCWARN) $(CFLAGS) $(XCFLAGS) | 113 | # You may also override the following variables at the make command line: |
| 114 | # CC HOST_CC STATIC_CC DYNAMIC_CC | ||
| 115 | # CFLAGS HOST_CFLAGS TARGET_CFLAGS | ||
| 116 | # LDFLAGS HOST_LDFLAGS TARGET_LDFLAGS TARGET_SHLDFLAGS | ||
| 117 | # LIBS HOST_LIBS TARGET_LIBS | ||
| 118 | # CROSS HOST_SYS TARGET_SYS | ||
| 119 | # | ||
| 120 | # Cross-compilation example: make CROSS=i586-mingw32msvc- TARGET_SYS=Windows | ||
| 121 | |||
| 122 | CCOPTIONS= $(CCDEBUG) $(CCOPT) $(CCWARN) $(XCFLAGS) $(CFLAGS) | ||
| 114 | LDOPTIONS= $(CCDEBUG) $(LDFLAGS) | 123 | LDOPTIONS= $(CCDEBUG) $(LDFLAGS) |
| 115 | 124 | ||
| 125 | TARGET_ARCH= $(patsubst %,-DLUAJIT_TARGET=LUAJIT_ARCH_%,$(TARGET)) | ||
| 126 | |||
| 116 | HOST_CC= $(CC) | 127 | HOST_CC= $(CC) |
| 117 | HOST_RM= rm -f | 128 | HOST_RM= rm -f |
| 118 | # NOTE: The LuaJIT distribution comes with a pre-generated buildvm_*.h. | 129 | # NOTE: The LuaJIT distribution comes with a pre-generated buildvm_*.h. |
| @@ -124,12 +135,10 @@ HOST_LUA= lua | |||
| 124 | HOST_XCFLAGS= | 135 | HOST_XCFLAGS= |
| 125 | HOST_XLDFLAGS= | 136 | HOST_XLDFLAGS= |
| 126 | HOST_XLIBS= | 137 | HOST_XLIBS= |
| 127 | HOST_CFLAGS= $(CCOPTIONS) $(HOST_XCFLAGS) $(TARGET_ARCH) | 138 | HOST_ACFLAGS= $(CCOPTIONS) $(HOST_XCFLAGS) $(TARGET_ARCH) $(HOST_CFLAGS) |
| 128 | HOST_LDFLAGS= $(LDOPTIONS) $(HOST_XLDFLAGS) | 139 | HOST_ALDFLAGS= $(LDOPTIONS) $(HOST_XLDFLAGS) $(HOST_LDFLAGS) |
| 129 | HOST_LIBS= $(HOST_XLIBS) | 140 | HOST_ALIBS= $(HOST_XLIBS) $(LIBS) $(HOST_LIBS) |
| 130 | 141 | ||
| 131 | # Cross-compilation example: make CROSS=i586-mingw32msvc- TARGET_SYS=Windows | ||
| 132 | CROSS= | ||
| 133 | STATIC_CC = $(CROSS)$(CC) | 142 | STATIC_CC = $(CROSS)$(CC) |
| 134 | DYNAMIC_CC = $(CROSS)$(CC) -fPIC | 143 | DYNAMIC_CC = $(CROSS)$(CC) -fPIC |
| 135 | TARGET_CC= $(STATIC_CC) | 144 | TARGET_CC= $(STATIC_CC) |
| @@ -145,21 +154,18 @@ TARGET_DLLNAME= lua$(NODOTABIVER).dll | |||
| 145 | TARGET_XSHLDFLAGS= -shared -fPIC -Wl,-soname,$(TARGET_SONAME) | 154 | TARGET_XSHLDFLAGS= -shared -fPIC -Wl,-soname,$(TARGET_SONAME) |
| 146 | TARGET_DYNXLDOPTS= | 155 | TARGET_DYNXLDOPTS= |
| 147 | 156 | ||
| 148 | TARGET_ARCH= $(patsubst %,-DLUAJIT_TARGET=LUAJIT_ARCH_%,$(TARGET)) | 157 | TARGET_XCFLAGS= -D_FILE_OFFSET_BITS=64 -U_FORTIFY_SOURCE |
| 149 | TARGET_DISABLE= -U_FORTIFY_SOURCE | 158 | TARGET_XLDFLAGS= |
| 159 | TARGET_XLIBS= -lm | ||
| 160 | TARGET_ACFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_ARCH) $(TARGET_CFLAGS) | ||
| 161 | TARGET_ALDFLAGS= $(LDOPTIONS) $(TARGET_XLDFLAGS) $(TARGET_LDFLAGS) | ||
| 162 | TARGET_ASHLDFLAGS= $(LDOPTIONS) $(TARGET_XSHLDFLAGS) $(TARGET_SHLDFLAGS) | ||
| 163 | TARGET_ALIBS= $(TARGET_XLIBS) $(LIBS) $(TARGET_LIBS) | ||
| 164 | |||
| 150 | ifneq (,$(findstring stack-protector,$(shell $(TARGET_CC) -dumpspecs))) | 165 | ifneq (,$(findstring stack-protector,$(shell $(TARGET_CC) -dumpspecs))) |
| 151 | TARGET_DISABLE+= -fno-stack-protector | 166 | TARGET_XCFLAGS+= -fno-stack-protector |
| 152 | endif | 167 | endif |
| 153 | 168 | ||
| 154 | TARGET_XCFLAGS= -D_FILE_OFFSET_BITS=64 | ||
| 155 | TARGET_XLDFLAGS= | ||
| 156 | TARGET_XLDOPTS= | ||
| 157 | TARGET_XLIBS= | ||
| 158 | TARGET_CFLAGS= $(CCOPTIONS) $(TARGET_DISABLE) $(TARGET_XCFLAGS) | ||
| 159 | TARGET_LDFLAGS= $(LDOPTIONS) $(TARGET_XLDFLAGS) $(TARGET_XLDOPTS) | ||
| 160 | TARGET_SHLDFLAGS= $(LDOPTIONS) $(TARGET_XSHLDFLAGS) | ||
| 161 | TARGET_LIBS= -lm $(TARGET_XLIBS) | ||
| 162 | |||
| 163 | ifneq (,$(PREFIX)) | 169 | ifneq (,$(PREFIX)) |
| 164 | ifneq (/usr/local,$(PREFIX)) | 170 | ifneq (/usr/local,$(PREFIX)) |
| 165 | TARGET_XCFLAGS+= -DLUA_XROOT=\"$(PREFIX)/\" | 171 | TARGET_XCFLAGS+= -DLUA_XROOT=\"$(PREFIX)/\" |
| @@ -201,9 +207,9 @@ ifeq (Darwin,$(TARGET_SYS)) | |||
| 201 | TARGET_XSHLDFLAGS+= -install_name $(PREFIX)/lib/$(TARGET_DYLIBNAME) | 207 | TARGET_XSHLDFLAGS+= -install_name $(PREFIX)/lib/$(TARGET_DYLIBNAME) |
| 202 | endif | 208 | endif |
| 203 | else | 209 | else |
| 204 | TARGET_XLDFLAGS= -Wl,-E | 210 | TARGET_XLDFLAGS+= -Wl,-E |
| 205 | ifeq (Linux,$(TARGET_SYS)) | 211 | ifeq (Linux,$(TARGET_SYS)) |
| 206 | TARGET_XLIBS= -ldl | 212 | TARGET_XLIBS+= -ldl |
| 207 | endif | 213 | endif |
| 208 | endif | 214 | endif |
| 209 | endif | 215 | endif |
| @@ -278,7 +284,7 @@ ifeq (Windows,$(HOST_SYS)) | |||
| 278 | LIB_VMDEFP= $(subst /,\\,$(LIB_VMDEF)) | 284 | LIB_VMDEFP= $(subst /,\\,$(LIB_VMDEF)) |
| 279 | endif | 285 | endif |
| 280 | ifeq (Windows,$(TARGET_SYS)) | 286 | ifeq (Windows,$(TARGET_SYS)) |
| 281 | DYNAMIC_CC= $(STATIC_CC) | 287 | TARGET_DYNCC= $(STATIC_CC) |
| 282 | LJVM_BOUT= $(LJVM_O) | 288 | LJVM_BOUT= $(LJVM_O) |
| 283 | LJVM_MODE= peobj | 289 | LJVM_MODE= peobj |
| 284 | LUAJIT_SO= $(TARGET_DLLNAME) | 290 | LUAJIT_SO= $(TARGET_DLLNAME) |
| @@ -303,11 +309,13 @@ ifeq (static,$(BUILDMODE)) | |||
| 303 | TARGET_DEP= $(LIB_VMDEF) | 309 | TARGET_DEP= $(LIB_VMDEF) |
| 304 | else | 310 | else |
| 305 | ifeq (dynamic,$(BUILDMODE)) | 311 | ifeq (dynamic,$(BUILDMODE)) |
| 306 | TARGET_CC= $(DYNAMIC_CC) | 312 | ifneq (Windows,$(TARGET_SYS)) |
| 313 | TARGET_CC= $(DYNAMIC_CC) | ||
| 314 | endif | ||
| 307 | TARGET_DYNCC= @: | 315 | TARGET_DYNCC= @: |
| 308 | LJVMCORE_DYNO= $(LJVMCORE_O) | 316 | LJVMCORE_DYNO= $(LJVMCORE_O) |
| 309 | TARGET_O= $(LUAJIT_SO) | 317 | TARGET_O= $(LUAJIT_SO) |
| 310 | TARGET_XLDOPTS= $(TARGET_DYNXLDOPTS) | 318 | TARGET_XLDFLAGS+= $(TARGET_DYNXLDOPTS) |
| 311 | else | 319 | else |
| 312 | ifeq (Darwin,$(TARGET_SYS)) | 320 | ifeq (Darwin,$(TARGET_SYS)) |
| 313 | TARGET_DYNCC= @: | 321 | TARGET_DYNCC= @: |
| @@ -347,7 +355,7 @@ depend: | |||
| 347 | @test -f lj_recdef.h || touch lj_recdef.h | 355 | @test -f lj_recdef.h || touch lj_recdef.h |
| 348 | @test -f lj_folddef.h || touch lj_folddef.h | 356 | @test -f lj_folddef.h || touch lj_folddef.h |
| 349 | @test -f buildvm_x86.h || touch buildvm_x86.h | 357 | @test -f buildvm_x86.h || touch buildvm_x86.h |
| 350 | @$(HOST_CC) $(HOST_CFLAGS) -MM *.c | sed "s|$(DASM_DIR)|\$$(DASM_DIR)|g" >Makefile.dep | 358 | @$(HOST_CC) $(HOST_ACFLAGS) -MM *.c | sed "s|$(DASM_DIR)|\$$(DASM_DIR)|g" >Makefile.dep |
| 351 | @test -s lj_ffdef.h || $(HOST_RM) lj_ffdef.h | 359 | @test -s lj_ffdef.h || $(HOST_RM) lj_ffdef.h |
| 352 | @test -s lj_libdef.h || $(HOST_RM) lj_libdef.h | 360 | @test -s lj_libdef.h || $(HOST_RM) lj_libdef.h |
| 353 | @test -s lj_recdef.h || $(HOST_RM) lj_recdef.h | 361 | @test -s lj_recdef.h || $(HOST_RM) lj_recdef.h |
| @@ -366,7 +374,7 @@ buildvm_x86.h: buildvm_x86.dasc | |||
| 366 | 374 | ||
| 367 | $(BUILDVM_T): $(BUILDVM_O) | 375 | $(BUILDVM_T): $(BUILDVM_O) |
| 368 | $(E) "HOSTLINK $@" | 376 | $(E) "HOSTLINK $@" |
| 369 | $(Q)$(HOST_CC) $(HOST_LDFLAGS) -o $@ $(BUILDVM_O) $(HOST_LIBS) | 377 | $(Q)$(HOST_CC) $(HOST_ALDFLAGS) -o $@ $(BUILDVM_O) $(HOST_ALIBS) |
| 370 | 378 | ||
| 371 | $(LJVM_BOUT): $(BUILDVM_T) | 379 | $(LJVM_BOUT): $(BUILDVM_T) |
| 372 | $(E) "BUILDVM $@" | 380 | $(E) "BUILDVM $@" |
| @@ -398,21 +406,21 @@ lj_folddef.h: $(BUILDVM_T) lj_opt_fold.c | |||
| 398 | 406 | ||
| 399 | %.o: %.c | 407 | %.o: %.c |
| 400 | $(E) "CC $@" | 408 | $(E) "CC $@" |
| 401 | $(Q)$(TARGET_DYNCC) $(TARGET_CFLAGS) -c -o $(@:.o=_dyn.o) $< | 409 | $(Q)$(TARGET_DYNCC) $(TARGET_ACFLAGS) -c -o $(@:.o=_dyn.o) $< |
| 402 | $(Q)$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ $< | 410 | $(Q)$(TARGET_CC) $(TARGET_ACFLAGS) -c -o $@ $< |
| 403 | 411 | ||
| 404 | %.o: %.s | 412 | %.o: %.s |
| 405 | $(E) "ASM $@" | 413 | $(E) "ASM $@" |
| 406 | $(Q)$(TARGET_DYNCC) $(TARGET_CFLAGS) -c -o $(@:.o=_dyn.o) $< | 414 | $(Q)$(TARGET_DYNCC) $(TARGET_ACFLAGS) -c -o $(@:.o=_dyn.o) $< |
| 407 | $(Q)$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ $< | 415 | $(Q)$(TARGET_CC) $(TARGET_ACFLAGS) -c -o $@ $< |
| 408 | 416 | ||
| 409 | $(LUAJIT_O): | 417 | $(LUAJIT_O): |
| 410 | $(E) "CC $@" | 418 | $(E) "CC $@" |
| 411 | $(Q)$(TARGET_STCC) $(TARGET_CFLAGS) -c -o $@ $< | 419 | $(Q)$(TARGET_STCC) $(TARGET_ACFLAGS) -c -o $@ $< |
| 412 | 420 | ||
| 413 | $(HOST_O): %.o: %.c | 421 | $(HOST_O): %.o: %.c |
| 414 | $(E) "HOSTCC $@" | 422 | $(E) "HOSTCC $@" |
| 415 | $(Q)$(HOST_CC) $(HOST_CFLAGS) -c -o $@ $< | 423 | $(Q)$(HOST_CC) $(HOST_ACFLAGS) -c -o $@ $< |
| 416 | 424 | ||
| 417 | include Makefile.dep | 425 | include Makefile.dep |
| 418 | 426 | ||
| @@ -427,12 +435,12 @@ $(LUAJIT_A): $(LJVMCORE_O) | |||
| 427 | # The dependency on _O, but linking with _DYNO is intentional. | 435 | # The dependency on _O, but linking with _DYNO is intentional. |
| 428 | $(LUAJIT_SO): $(LJVMCORE_O) | 436 | $(LUAJIT_SO): $(LJVMCORE_O) |
| 429 | $(E) "DYNLINK $@" | 437 | $(E) "DYNLINK $@" |
| 430 | $(Q)$(TARGET_LD) $(TARGET_SHLDFLAGS) -o $@ $(LJVMCORE_DYNO) $(TARGET_LIBS) | 438 | $(Q)$(TARGET_LD) $(TARGET_ASHLDFLAGS) -o $@ $(LJVMCORE_DYNO) $(TARGET_ALIBS) |
| 431 | $(Q)$(TARGET_STRIP) $@ | 439 | $(Q)$(TARGET_STRIP) $@ |
| 432 | 440 | ||
| 433 | $(LUAJIT_T): $(TARGET_O) $(LUAJIT_O) $(TARGET_DEP) | 441 | $(LUAJIT_T): $(TARGET_O) $(LUAJIT_O) $(TARGET_DEP) |
| 434 | $(E) "LINK $@" | 442 | $(E) "LINK $@" |
| 435 | $(Q)$(TARGET_LD) $(TARGET_LDFLAGS) -o $@ $(LUAJIT_O) $(TARGET_O) $(TARGET_LIBS) | 443 | $(Q)$(TARGET_LD) $(TARGET_ALDFLAGS) -o $@ $(LUAJIT_O) $(TARGET_O) $(TARGET_ALIBS) |
| 436 | $(Q)$(TARGET_STRIP) $@ | 444 | $(Q)$(TARGET_STRIP) $@ |
| 437 | $(E) "OK Successfully built LuaJIT" | 445 | $(E) "OK Successfully built LuaJIT" |
| 438 | 446 | ||
