46 lines
		
	
	
		
			858 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			858 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| ifeq ($(MITTOS64),)
 | |
|   $(error Build environment is not activated. Please source activate)
 | |
| endif
 | |
| 
 | |
| LIBDIR := $(SYSROOT)/usr/lib
 | |
| LIBC := $(LIBDIR)/libc.a
 | |
| 
 | |
| CRT := crt0
 | |
| CRT_OBJ := $(addprefix obj/, $(patsubst %,%.o,$(CRT)))
 | |
| SRC := $(filter-out $(CRT).%, $(wildcard *.[cS]))
 | |
| OBJ := $(addprefix obj/, $(patsubst %,%.o, $(basename $(SRC))))
 | |
| 
 | |
| libfile := mittos64.o
 | |
| LIB_OBJ := $(LIBC)($(libfile))
 | |
| 
 | |
| CFLAGS := -Wall -Wextra -ggdb -O0
 | |
| ASFLAGS := -ggdb
 | |
| 
 | |
| all: $(CRT_OBJ) $(OBJ)
 | |
| 
 | |
| OBJ_DIRS := $(sort $(dir $(CRT_OBJ) $(OBJ)))
 | |
| $(CRT_OBJ): | $(OBJ_DIRS)
 | |
| $(OBJ_DIRS):
 | |
| 	mkdir -p $@
 | |
| 
 | |
| obj/%.o:%.c
 | |
| 	$(COMPILE.c) $^ -o $@
 | |
| obj/%.o:%.S
 | |
| 	$(COMPILE.S) $^ -o $@
 | |
| obj/$(libfile):$(OBJ)
 | |
| 	$(LD) -r $^ -o $@
 | |
| 
 | |
| $(LIBC)(%):obj/%
 | |
| 	$(AR) -d $@ $<
 | |
| 	$(AR) -rs $@ $<
 | |
| 
 | |
| $(LIBDIR)/%: obj/%
 | |
| 	cp $< $@
 | |
| 
 | |
| install: $(patsubst %,$(LIBDIR)/%.o,$(CRT)) $(LIB_OBJ)
 | |
| 
 | |
| clean:
 | |
| 	rm -rf obj/
 | |
| 
 | |
| .PHONY: all clean install
 |