aboutsummaryrefslogblamecommitdiff
path: root/src/rules.make
blob: 7a5c21e7e003d36d8ad36be8eac8f875ec31c8df (plain) (tree)
1
2
3
4
5
6
7
8
9
10
              




                  
                                                                                                                             


                                                                                        
                                             


           

                                                                                          










                                     
                            



                         
 
.PRECIOUS: %.o

AS = nasm
ASFLAGS = -felf -g

CC = i586-elf-gcc
CFLAGS += -ffreestanding -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-unused-function -I . -I ./include -g -O0
# CXX = i586-elf-g++
# CXFLAGS = -ffreestanding -O3 -Wall -Wextra -I . -I ./include -fno-exceptions -fno-rtti
LD = i586-elf-gcc
LDFLAGS += -ffreestanding -nostdlib -lgcc -O0

all: $(OUT)

$(OUT): $(OBJ) $(LIB)
	OUT=$(OUT); $(LD) $(LDFLAGS) `if [ $${OUT##*.} = lib ]; then echo -r; fi` -o $@ $^

%.o: %.s
	$(AS) $(ASFLAGS) -o $@ $<

%.o: %.c
	$(CC) -c $< -o $@ $(CFLAGS)

# %.o: %.cpp
#	$(CXX) -c $< -o $@ $(CXFLAGS)

clean:
	rm *.o */*.o || true
mrproper: clean
	rm $(OUT) || true

rebuild: mrproper all