makefile 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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 -pedantic
  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 -lm
  34. PLATFORM_FEATURES= -DSUN_DL=1
  35. # Cygwin
  36. #PLATFORM_FEATURES = -DUSE_STRLWR=0
  37. # MinGW/MSYS
  38. #SOsuf=dll
  39. #PLATFORM_FEATURES = -DUSE_STRLWR=0
  40. # Mac OS X
  41. #LD = gcc
  42. #LDFLAGS = --dynamiclib
  43. #DEBUG=-g -Wno-char-subscripts -O
  44. #SYS_LIBS= -ldl
  45. #PLATFORM_FEATURES= -DUSE_STRLWR=1 -D__APPLE__=1 -DOSX=1
  46. # Solaris
  47. #SYS_LIBS= -ldl -lc
  48. #Osuf=o
  49. #SOsuf=so
  50. #EXE_EXT=
  51. #LD = ld
  52. #LDFLAGS = -G -Bsymbolic -z text
  53. #LIBPREFIX = lib
  54. #OUT = -o $@
  55. FEATURES = $(PLATFORM_FEATURES) -DUSE_DL=1 -DUSE_MATH=1 -DUSE_ASCII_NAMES=0
  56. OBJS = scheme.$(Osuf) dynload.$(Osuf)
  57. LIBTARGET = $(LIBPREFIX)tinyscheme.$(SOsuf)
  58. STATICLIBTARGET = $(LIBPREFIX)tinyscheme.$(LIBsuf)
  59. all: $(LIBTARGET) $(STATICLIBTARGET) scheme$(EXE_EXT)
  60. %.$(Osuf): %.c
  61. $(CC) -I. -c $(DEBUG) $(FEATURES) $(DL_FLAGS) $<
  62. $(LIBTARGET): $(OBJS)
  63. $(LD) $(LDFLAGS) $(OUT) $(OBJS) $(SYS_LIBS)
  64. scheme$(EXE_EXT): $(OBJS)
  65. $(CC) -o $@ $(DEBUG) $(OBJS) $(SYS_LIBS)
  66. $(STATICLIBTARGET): $(OBJS)
  67. $(AR) $@ $(OBJS)
  68. $(OBJS): scheme.h scheme-private.h opdefines.h
  69. dynload.$(Osuf): dynload.h
  70. clean:
  71. $(RM) $(OBJS) $(LIBTARGET) $(STATICLIBTARGET) scheme$(EXE_EXT)
  72. $(RM) tinyscheme.ilk tinyscheme.map tinyscheme.pdb tinyscheme.exp
  73. $(RM) scheme.ilk scheme.map scheme.pdb scheme.lib scheme.exp
  74. $(RM) *~
  75. TAGS_SRCS = scheme.h scheme.c dynload.h dynload.c
  76. tags: TAGS
  77. TAGS: $(TAGS_SRCS)
  78. etags $(TAGS_SRCS)