Newer
Older
snipet / kscript / Makefile
Nomura Kei on 9 Aug 2023 1 KB add kscript
  1. # vim: ts=4 sw=4 sts=4 fenc=utf-8 ff=unix :
  2. # =====================================================================
  3. # Makefile for libsc
  4. # =====================================================================
  5.  
  6. # ---------------------------------------------------------------------
  7. # SETTING & OPTION
  8. # ---------------------------------------------------------------------
  9. TARGET = kscript.exe
  10. SRCDIR = src
  11. SRCS = $(wildcard src/*.c)
  12. OBJS = $(SRCS:src/%.c=obj/%.o)
  13.  
  14. INCLUDES = -Iinclude -Itests
  15. CFLAGS = -Wall `./sc-config --cflags`
  16. LDFLAGS =
  17. LIBS = `./sc-config --libs`
  18.  
  19. # for tests
  20. TESTTARGET = libsctest.exe
  21. TESTSRCS = $(wildcard tests/*.c)
  22. TESTOBJS = $(TESTSRCS:tests/%.c=tests/%.o) $(SRCS:src/%.c=tests/%.o)
  23. TESTCFLAGS = $(CFLAGS) -DSC_DEBUG -g -fprofile-arcs -ftest-coverage
  24. #TESTCFLAGS = $(CFLAGS) -g -fprofile-arcs -ftest-coverage
  25. TESTLIBS = `./sc-config --libs`
  26.  
  27. .SUFFIXES: .o .c
  28.  
  29. # ---------------------------------------------------------------------
  30. # COMMANDS
  31. # ---------------------------------------------------------------------
  32. AS = as
  33. AR = ar
  34. CC = gcc
  35. CP = cp
  36. MV = mv
  37. RANLIB = ranlib
  38. RM = rm
  39. STRIP = strip
  40.  
  41. all: $(TARGET)
  42.  
  43. test: $(TESTTARGET)
  44.  
  45. $(TARGET): $(OBJS)
  46. $(CC) $(LDFLAGS) -o $(TARGET) $^ $(LIBS)
  47.  
  48. obj/%.o: src/%.c
  49. $(CC) $(INCLUDES) $(CFLAGS) -c -o $@ $<
  50.  
  51. clean:
  52. $(RM) -f $(TARGET) $(OBJS)
  53. $(RM) -f $(TESTTARGET) $(TESTOBJS) $(TESTS)
  54. $(RM) -f *~ */*~
  55. $(RM) -f unittest.tmp
  56. $(RM) -f */*.gcno */*.gcda
  57. $(RM) -f *.c.gcov
  58.  
  59. $(TESTTARGET): $(TESTOBJS)
  60. $(CC) $(TESTCFLAGS) -o $(TESTTARGET) $^ $(TESTLIBS)
  61.  
  62. tests/%.o: src/%.c
  63. $(CC) $(INCLUDES) $(TESTCFLAGS) -c -o $@ $<
  64.  
  65. tests/%.o: tests/%.c
  66. $(CC) $(INCLUDES) $(TESTCFLAGS) -c -o $@ $<
  67.