mirror of https://github.com/tailix/mrubyvisor.git
Improve build system
This commit is contained in:
parent
777f5d6430
commit
ff1a6f89d8
15
Makefile
15
Makefile
|
@ -29,7 +29,12 @@ LIBKERNAUX_ARGS = \
|
|||
--with-drivers \
|
||||
--with-libc
|
||||
|
||||
MRUBY_NAME = mrubyvisor
|
||||
MRUBY_FLAGS = \
|
||||
-DMRB_NO_BOXING \
|
||||
-DMRB_NO_FLOAT \
|
||||
-DMRB_NO_STDIO
|
||||
|
||||
MRUBY_BUILD_NAME = mrubyvisor
|
||||
|
||||
.PHONY: $(IMAGE) $(MRUBYVISOR)
|
||||
|
||||
|
@ -59,7 +64,7 @@ $(IMAGE): $(GRUBCFG) $(MRUBYVISOR)
|
|||
grub-mkrescue $(ROOTFS) -o $@
|
||||
|
||||
$(MRUBYVISOR): $(LIBKERNAUX) $(LIBMRUBY)
|
||||
$(MAKE) -C $(SRC) mrubyvisor.multiboot2 CCPREFIX='$(CCPREFIX)' DEST='$(ABS_REPO)/$(DEST)'
|
||||
$(MAKE) -C $(SRC) mrubyvisor.multiboot2 CCPREFIX='$(CCPREFIX)' DEST='$(ABS_REPO)/$(DEST)' MRUBY_FLAGS='$(MRUBY_FLAGS)'
|
||||
cp $(SRC)/mrubyvisor.multiboot2 $@
|
||||
|
||||
$(LIBKERNAUX):
|
||||
|
@ -70,8 +75,8 @@ $(LIBKERNAUX):
|
|||
|
||||
$(LIBMRUBY): $(LIBKERNAUX) $(MRUBY_CONF)
|
||||
$(MAKE) clean-mruby
|
||||
cd vendor/mruby && $(RAKE) MRUBY_CONFIG='$(ABS_REPO)/$(MRUBY_CONF)' CROSS_AR='$(AR)' CROSS_CC='$(CC)' CROSS_LD='$(LD)'
|
||||
cd vendor/mruby && $(RAKE) MRUBY_CONFIG='$(ABS_REPO)/$(MRUBY_CONF)' CROSS_AR='$(AR)' CROSS_CC='$(CC)' CROSS_LD='$(LD)' FLAGS='$(MRUBY_FLAGS)' BUILD_NAME='$(MRUBY_BUILD_NAME)' INCLUDE_DIR='$(ABS_REPO)/$(DEST)/include' LIB_DIR='$(ABS_REPO)/$(DEST)/lib'
|
||||
mkdir -p $(DEST)/include $(DEST)/lib
|
||||
cp vendor/mruby/build/$(MRUBY_NAME)/lib/libmruby.a $(DEST)/lib
|
||||
cp vendor/mruby/build/$(MRUBY_BUILD_NAME)/lib/libmruby.a $(DEST)/lib
|
||||
cp -r vendor/mruby/include/* $(DEST)/include
|
||||
cp -r vendor/mruby/build/$(MRUBY_NAME)/include/* $(DEST)/include
|
||||
cp -r vendor/mruby/build/$(MRUBY_BUILD_NAME)/include/* $(DEST)/include
|
||||
|
|
|
@ -1,16 +1,8 @@
|
|||
ROOT_DIR = File.expand_path(__dir__).freeze
|
||||
DEST_DIR = File.join(ROOT_DIR, 'dest').freeze
|
||||
|
||||
MRuby::CrossBuild.new 'mrubyvisor' do |conf|
|
||||
MRuby::CrossBuild.new ENV.fetch 'BUILD_NAME' do |conf|
|
||||
conf.toolchain :gcc
|
||||
|
||||
conf.gem core: 'mruby-compiler'
|
||||
|
||||
conf.cc.defines <<
|
||||
'MRB_NO_BOXING' <<
|
||||
'MRB_NO_FLOAT' <<
|
||||
'MRB_NO_STDIO'
|
||||
|
||||
conf.cc.flags <<
|
||||
'-Wall' <<
|
||||
'-Wextra' <<
|
||||
|
@ -19,10 +11,15 @@ MRuby::CrossBuild.new 'mrubyvisor' do |conf|
|
|||
'-fno-pic' <<
|
||||
'-fno-stack-protector'
|
||||
|
||||
conf.cc.include_paths << File.join(DEST_DIR, 'include')
|
||||
conf.linker.library_paths << File.join(DEST_DIR, 'lib')
|
||||
ENV.fetch('FLAGS').split.map do |flag|
|
||||
m = /\A-D(MRB_.*)\z/.match flag
|
||||
conf.cc.defines << m[1] if m
|
||||
end
|
||||
|
||||
conf.archiver.command = ENV['CROSS_AR']
|
||||
conf.cc.command = ENV['CROSS_CC']
|
||||
conf.linker.command = ENV['CROSS_LD']
|
||||
conf.cc.include_paths << ENV.fetch('INCLUDE_DIR')
|
||||
conf.linker.library_paths << ENV.fetch('LIB_DIR')
|
||||
|
||||
conf.archiver.command = ENV.fetch 'CROSS_AR'
|
||||
conf.cc.command = ENV.fetch 'CROSS_CC'
|
||||
conf.linker.command = ENV.fetch 'CROSS_LD'
|
||||
end
|
||||
|
|
|
@ -16,11 +16,9 @@ CFLAGS = \
|
|||
-fno-stack-protector \
|
||||
-I$(DEST)/include
|
||||
|
||||
CPPFLAGS = \
|
||||
CPPFLAGS = \
|
||||
$(MRUBY_FLAGS) \
|
||||
-DKERNAUX_DEBUG \
|
||||
-DMRB_NO_BOXING \
|
||||
-DMRB_NO_FLOAT \
|
||||
-DMRB_NO_STDIO
|
||||
|
||||
OBJS = start.S.o main.c.o
|
||||
|
||||
|
|
Loading…
Reference in New Issue