Improve build system

This commit is contained in:
Alex Kotov 2022-11-29 01:48:14 +04:00
parent 777f5d6430
commit ff1a6f89d8
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
3 changed files with 23 additions and 23 deletions

View File

@ -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

View File

@ -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

View File

@ -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