#!/usr/bin/ruby -Ks tasklist = Array.new if( ARGV[0] == nil ) printf( "既定ファイル renge_tasks.txt を使用します" ) datfile = "renge_tasks.txt" else datfile = ARGV[0] end if( !File.exist?( datfile ) ) printf("設定ファイルが見つかりません。") exit( 1 ) end setting = File.open( datfile ) setting.each{|dat| dat.chomp! if( dat != nil ) tasklist << dat end } tasklist.each{|dat| printf( "\n%s" , dat ) } printf( "\n----------\nタスク数 %d \n", tasklist.size ) #----- 静的タスクの列挙 ------------------------------------------------------- conf = File.new( "renge_task_intval.h", "w+" ) conf << "/*スクリプトによる自動生成です。手動で書き換えない方がよいです*/\n\n" conf << "#ifndef __renge_task__\n#define __renge_task__\n\n" conf << "#include \"renge_defs.h\"\n\n" conf << "enum {\n " tasklist.each{|dat| conf << "TSK_" << dat.upcase << ", " } conf << "TSK_LAST \n };\n\n" tasklist.each{|dat| conf << "extern void tsk_" << dat << "();\n" } conf << "\n" conf << "static const task_status ( *tasks[ TSK_LAST ] )() = {\n" tasklist.each{|dat| conf << " tsk_" << dat << ",\n" } conf << " };\n" conf << "\n\n#endif\n"