1ファイルなC#コードのコンパイル@Linux

短いJavaコードをMakefileでコンパイルする(Antは面倒なので書きたくない)派なので、C#でもやってみた。

mono-gmcsとmono-runtimeがあれば十分だと思う。
mono-runtimeにbinfmtsの設定が書かれているはずなので

make
./Hello.exe

で動作する。

Makefile

#!/usr/bin/make -f

CS = gmcs
CSFLAGS = 
OBJS = Hello.exe

all: $(OBJS)

clean:
	$(RM) $(OBJS)

.PHONY: all clean

.SUFFIXES : .cs .exe

.cs.exe:
	$(CS) $(CSFLAGS) -o $@ $^

Hello.cs

using System;

public class Hello {
    public static void Main() {
        Console.WriteLine("Hello, world!");
    }
}