diff --git a/.gitignore b/.gitignore index 34d5138..b3d1b1b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ -xkremap -mruby/ -*.o +/xkremap +/mruby diff --git a/Makefile b/Makefile index 05044d6..84a64fb 100644 --- a/Makefile +++ b/Makefile @@ -6,12 +6,12 @@ OBJS=src/main.o all: xkremap -xkremap: $(OBJS) - $(LD) $(OBJS) $(LDFLAGS) -o $@ +xkremap: mruby/build/host/bin/xkremap + cp mruby/build/host/bin/xkremap xkremap mruby: curl -L --fail --retry 3 --retry-delay 1 https://github.com/mruby/mruby/archive/1.2.0.tar.gz -s -o - | tar zxf - mv mruby-1.2.0 $@ -mruby/build/host/bin/mruby: mruby +mruby/build/host/bin/xkremap: mruby build_config.rb tools/xkremap/xkremap.c cd mruby && MRUBY_CONFIG="$(current_dir)/build_config.rb" make diff --git a/build_config.rb b/build_config.rb index 6b54359..d9a2f8e 100644 --- a/build_config.rb +++ b/build_config.rb @@ -1,138 +1,9 @@ MRuby::Build.new do |conf| - # load specific toolchain settings + toolchain :gcc - # Gets set by the VS command prompts. - if ENV['VisualStudioVersion'] || ENV['VSINSTALLDIR'] - toolchain :visualcpp - else - toolchain :gcc + conf.gem File.expand_path(File.dirname(__FILE__)) + conf.instance_eval do + # Allow showing backtrace. + @mrbc.compile_options += ' -g' end - - enable_debug - - # Use mrbgems - # conf.gem 'examples/mrbgems/ruby_extension_example' - # conf.gem 'examples/mrbgems/c_extension_example' do |g| - # g.cc.flags << '-g' # append cflags in this gem - # end - # conf.gem 'examples/mrbgems/c_and_ruby_extension_example' - # conf.gem :github => 'masuidrive/mrbgems-example', :checksum_hash => '76518e8aecd131d047378448ac8055fa29d974a9' - # conf.gem :git => 'git@github.com:masuidrive/mrbgems-example.git', :branch => 'master', :options => '-v' - - # include the default GEMs - conf.gembox 'default' - # C compiler settings - # conf.cc do |cc| - # cc.command = ENV['CC'] || 'gcc' - # cc.flags = [ENV['CFLAGS'] || %w()] - # cc.include_paths = ["#{root}/include"] - # cc.defines = %w(DISABLE_GEMS) - # cc.option_include_path = '-I%s' - # cc.option_define = '-D%s' - # cc.compile_options = "%{flags} -MMD -o %{outfile} -c %{infile}" - # end - - # mrbc settings - # conf.mrbc do |mrbc| - # mrbc.compile_options = "-g -B%{funcname} -o-" # The -g option is required for line numbers - # end - - # Linker settings - # conf.linker do |linker| - # linker.command = ENV['LD'] || 'gcc' - # linker.flags = [ENV['LDFLAGS'] || []] - # linker.flags_before_libraries = [] - # linker.libraries = %w() - # linker.flags_after_libraries = [] - # linker.library_paths = [] - # linker.option_library = '-l%s' - # linker.option_library_path = '-L%s' - # linker.link_options = "%{flags} -o %{outfile} %{objs} %{libs}" - # end - - # Archiver settings - # conf.archiver do |archiver| - # archiver.command = ENV['AR'] || 'ar' - # archiver.archive_options = 'rs %{outfile} %{objs}' - # end - - # Parser generator settings - # conf.yacc do |yacc| - # yacc.command = ENV['YACC'] || 'bison' - # yacc.compile_options = '-o %{outfile} %{infile}' - # end - - # gperf settings - # conf.gperf do |gperf| - # gperf.command = 'gperf' - # gperf.compile_options = '-L ANSI-C -C -p -j1 -i 1 -g -o -t -N mrb_reserved_word -k"1,3,$" %{infile} > %{outfile}' - # end - - # file extensions - # conf.exts do |exts| - # exts.object = '.o' - # exts.executable = '' # '.exe' if Windows - # exts.library = '.a' - # end - - # file separetor - # conf.file_separator = '/' - - # bintest - # conf.enable_bintest -end - -MRuby::Build.new('host-debug') do |conf| - # load specific toolchain settings - - # Gets set by the VS command prompts. - if ENV['VisualStudioVersion'] || ENV['VSINSTALLDIR'] - toolchain :visualcpp - else - toolchain :gcc - end - - enable_debug - - # include the default GEMs - conf.gembox 'default' - - # C compiler settings - conf.cc.defines = %w(MRB_ENABLE_DEBUG_HOOK) - - # Generate mruby debugger command (require mruby-eval) - conf.gem :core => "mruby-bin-debugger" - - # bintest - # conf.enable_bintest end - -MRuby::Build.new('test') do |conf| - # Gets set by the VS command prompts. - if ENV['VisualStudioVersion'] || ENV['VSINSTALLDIR'] - toolchain :visualcpp - else - toolchain :gcc - end - - enable_debug - conf.enable_bintest - conf.enable_test - - conf.gembox 'default' -end - -# Define cross build settings -# MRuby::CrossBuild.new('32bit') do |conf| -# toolchain :gcc -# -# conf.cc.flags << "-m32" -# conf.linker.flags << "-m32" -# -# conf.build_mrbtest_lib_only -# -# conf.gem 'examples/mrbgems/c_and_ruby_extension_example' -# -# conf.test_runner.command = 'env' -# -# end diff --git a/mrbgem.rake b/mrbgem.rake new file mode 100644 index 0000000..a82b4c7 --- /dev/null +++ b/mrbgem.rake @@ -0,0 +1,6 @@ +MRuby::Gem::Specification.new('xkremap') do |spec| + spec.license = 'MIT' + spec.author = 'Takashi Kokubun' + spec.summary = 'Dynamic key remapper for X Window System' + spec.bins = ['xkremap'] +end diff --git a/tools/xkremap/xkremap.c b/tools/xkremap/xkremap.c new file mode 100644 index 0000000..27f4618 --- /dev/null +++ b/tools/xkremap/xkremap.c @@ -0,0 +1,8 @@ +#include + +int +main(void) +{ + printf("Hello xkremap!\n"); + return 0; +}