aboutsummaryrefslogtreecommitdiff
path: root/src/rules.make
diff options
context:
space:
mode:
Diffstat (limited to 'src/rules.make')
-rw-r--r--src/rules.make34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/rules.make b/src/rules.make
new file mode 100644
index 0000000..e3840dd
--- /dev/null
+++ b/src/rules.make
@@ -0,0 +1,34 @@
+
+AS = nasm
+ASFLAGS = -felf -g
+
+CC = i586-elf-gcc
+CFLAGS += -ffreestanding -O2 -std=gnu99 -Wall -Wextra -I . -I ./include -g -Wno-unused-parameter
+# CXX = i586-elf-g++
+# CXFLAGS = -ffreestanding -O3 -Wall -Wextra -I . -I ./include -fno-exceptions -fno-rtti
+LD = i586-elf-gcc
+LDFLAGS += -ffreestanding -O2 -nostdlib -lgcc
+
+all: $(OUT)
+
+%.bin: $(OBJ)
+ $(LD) $(LDFLAGS) -o $@ $^ $(LIB)
+
+%.lib: $(OBJ)
+ $(LD) $(LDFLAGS) -r -o $@ $^ $(LIB)
+
+%.o: %.s
+ $(AS) $(ASFLAGS) -o $@ $<
+
+%.o: %.c
+ $(CC) -c $< -o $@ $(CFLAGS)
+
+# %.o: %.cpp
+# $(CXX) -c $< -o $@ $(CXFLAGS)
+
+clean:
+ rm */*.o || true
+mrproper: clean
+ rm $(OUT) || true
+
+rebuild: mrproper all