gen-cc (757B)
1 #!/bin/awk -f 2 #LIBRARY_PATH 3 #CPATH 4 #C_INCLUDE_PATH 5 #CPLUS_INCLUDE_PATH 6 #OBJC_INCLUDE_PATH 7 # '$(CC) $(CPPFLAGS) $(CFLAGS) -c' 8 # '$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c' 9 # '$(CC) $(LDFLAGS) N.o $(LOADLIBES) $(LDLIBS)' 10 11 function shquote(text) { 12 if(text !~ "[^-+,_./:@0-9A-Za-z]") { 13 return text 14 } 15 gsub("'", "'\\''", text) 16 return "'" text "'" 17 } 18 19 function or_(first, second) { 20 return length(first) ? first : second 21 } 22 23 function set_env(var) { 24 if(var in ENVIRON) { 25 print var "=" shquote(ENVIRON[var]) 26 } else { 27 print "unset -v " var 28 } 29 } 30 31 BEGIN { 32 print "#!" or_(ENVIRON["sh"], "/bin/sh") 33 set_env("LIBRARY_PATH") 34 set_env("CPATH") 35 set_env("C_INCLUDE_PATH") 36 print "exec " or_(ENVIRON["CC"], "gcc") " " ENVIRON["CPPFLAGS"] " " ENVIRON["CFLAGS"] " \"$@\"" 37 }