CC = gcc AS = as LD = ld CFLAGS = -c -nostdlib -fno-builtin ASFLAGS = -c LDFLAGS = -entry main -z noexecstack TARGET = helloworld OBJS = syscall.o helloworld.o all: $(TARGET) $(TARGET): $(OBJS) $(LD) $(OBJS) $(LDFLAGS) -o $@ helloworld.o: helloworld.c $(CC) $(CFLAGS) $< -o $@ syscall.o: syscall.s $(AS) $(ASFLAGS) $< -o $@ clean: rm -f $(OBJS) $(TARGET) run: $(TARGET) ./$(TARGET) size: $(TARGET) stat -c "%s bytes" $(TARGET) .PHONY: all clean run size