Makefile.x86 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. PWDDIR = $(shell pwd)
  2. OBJDIR = $(PWDDIR)/obj
  3. BINDIR = $(PWDDIR)/bin
  4. LIBDIR = $(PWDDIR)/lib
  5. TARGET = $(shell basename $(PWDDIR))
  6. AS = as
  7. CC = gcc
  8. CPP = g++
  9. AR = ar
  10. LD = ld
  11. OBJCOPY = objcopy
  12. OBJDUMP = objdump
  13. MAKE = make
  14. ASFLAGS = -D -g -I$(PWDDIR)
  15. CCFLAGS = -O3 -c -ffunction-sections -fdata-sections -I$(PWDDIR)
  16. CPPFLAGS = -O3 -c -ffunction-sections -fdata-sections -I$(PWDDIR)
  17. ARFLAGS = rcsv
  18. LDFLAGS = -L$(LIBDIR) -lm -lc
  19. EXCNAME = $(TARGET)
  20. LIBNAME = lib$(TARGET)
  21. DLLNAME = dll$(TARGET)
  22. ASFILES = $(wildcard *.S)
  23. CCFILES = $(wildcard *.c)
  24. CPPFILES = $(wildcard *.cpp)
  25. ASOBJS = $(patsubst %.c, $(OBJDIR)/%.o, $(ASFILES))
  26. CCOBJS = $(patsubst %.c, $(OBJDIR)/%.o, $(CCFILES))
  27. CPPOBJS = $(patsubst %.cpp, $(OBJDIR)/%.o, $(CPPFILES))
  28. ALLOBJS = $(ASOBJS) $(CCOBJS) $(CPPOBJS)
  29. all:$(ALLOBJS)
  30. # $(MAKE) -C ccvui
  31. # $(MAKE) -C hardware
  32. $(LD) $(LDFLAGS) -T default-t.lds -Map=$(BINDIR)/$(EXCNAME).map -o $(BINDIR)/$(EXCNAME).elf $(ALLOBJS)
  33. .PHONY:$(LIBNAME)
  34. $(LIBNAME):$(ALLOBJS)
  35. $(AR) $(ARFLAGS) $(LIBDIR)/$(LIBNAME).a $(ALLOBJS)
  36. .PHONY:$(DLLNAME)
  37. $(DLLNAME):$(ALLOBJS)
  38. $(CC) $(ALLOBJS) $(LDLAGS) -o $(BINDIR)/$(DLLNAME).so
  39. $(OBJDIR)/%.o : %.S
  40. $(AS) $(ASFLAGS) $< -o $@
  41. $(OBJDIR)/%.o : %.c
  42. $(CC) $(CCFLAGS) $< -o $@
  43. $(OBJDIR)/%.o : %.cpp
  44. $(CPP) $(CPPFLAGS) $< -o $@
  45. .PHONY : clean
  46. clean:
  47. rm -f $(BINDIR)/*app_*.bin $(BINDIR)/*.elf $(BINDIR)/*.dis $(BINDIR)/*.map $(BINDIR)/*.c $(OBJDIR)/*.o