makefile 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. # Makefile for TinyScheme
  2. # Time-stamp: <2002-06-24 14:13:27 gildea>
  3. # Windows/2000
  4. #CC = cl -nologo
  5. #DEBUG= -W3 -Z7 -MD
  6. #DL_FLAGS=
  7. #SYS_LIBS=
  8. #Osuf=obj
  9. #SOsuf=dll
  10. #LIBsuf=.lib
  11. #EXE_EXT=.exe
  12. #LD = link -nologo
  13. #LDFLAGS = -debug -map -dll -incremental:no
  14. #LIBPREFIX =
  15. #OUT = -out:$@
  16. #RM= -del
  17. #AR= echo
  18. # Unix, generally
  19. CC = gcc -fpic
  20. DEBUG=-g -Wall -Wno-char-subscripts -O
  21. Osuf=o
  22. SOsuf=so
  23. LIBsuf=a
  24. EXE_EXT=
  25. LIBPREFIX=lib
  26. OUT = -o $@
  27. RM= -rm -f
  28. AR= ar crs
  29. # Linux
  30. LD = gcc
  31. LDFLAGS = -shared
  32. DEBUG=-g -Wno-char-subscripts -O
  33. SYS_LIBS= -ldl
  34. PLATFORM_FEATURES= -DUSE_STRLWR=1
  35. # Cygwin
  36. #PLATFORM_FEATURES = -DUSE_STRLWR=0
  37. # Solaris
  38. #SYS_LIBS= -ldl -lc
  39. #Osuf=o
  40. #SOsuf=so
  41. #EXE_EXT=
  42. #LD = ld
  43. #LDFLAGS = -G -Bsymbolic -z text
  44. #LIBPREFIX = lib
  45. #OUT = -o $@
  46. FEATURES = $(PLATFORM_FEATURES) -DUSE_DL=0 -DUSE_MATH=0 -DUSE_ASCII_NAMES=0
  47. OBJS = scheme.$(Osuf) dynload.$(Osuf)
  48. LIBTARGET = $(LIBPREFIX)tinyscheme.$(SOsuf)
  49. STATICLIBTARGET = $(LIBPREFIX)tinyscheme.$(LIBsuf)
  50. all: $(LIBTARGET) $(STATICLIBTARGET) scheme$(EXE_EXT)
  51. %.$(Osuf): %.c
  52. $(CC) -I. -c $(DEBUG) $(FEATURES) $(DL_FLAGS) $<
  53. $(LIBTARGET): $(OBJS)
  54. $(LD) $(LDFLAGS) $(OUT) $(OBJS) $(SYS_LIBS)
  55. scheme$(EXE_EXT): $(OBJS)
  56. $(CC) -o $@ $(DEBUG) $(OBJS) $(SYS_LIBS)
  57. $(STATICLIBTARGET): $(OBJS)
  58. $(AR) $@ $(OBJS)
  59. $(OBJS): scheme.h scheme-private.h opdefines.h
  60. dynload.$(Osuf): dynload.h
  61. clean:
  62. $(RM) $(OBJS) $(LIBTARGET) $(STATICLIBTARGET) scheme$(EXE_EXT)
  63. $(RM) tinyscheme.ilk tinyscheme.map tinyscheme.pdb tinyscheme.exp
  64. $(RM) scheme.ilk scheme.map scheme.pdb scheme.lib scheme.exp
  65. $(RM) *~
  66. TAGS_SRCS = scheme.h scheme.c dynload.h dynload.c
  67. tags: TAGS
  68. TAGS: $(TAGS_SRCS)
  69. etags $(TAGS_SRCS)