home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mdepsrc.zip / Makefile < prev    next >
Makefile  |  1996-12-11  |  3KB  |  126 lines

  1. # this MUST be FIRST (why?)
  2.  
  3. .SUFFIXES:
  4. .SUFFIXES: .c .cpp .obj
  5.  
  6. # info, PROG is name of exe or dll
  7.  
  8. NAME    = makedepend
  9. PROG    = makedepend
  10. AUTHOR  = li
  11. VERSION = 1.0
  12. TARGET    = exe
  13. MODULES = 
  14.  
  15. # edit here for other paths for make install
  16.  
  17. DLLDIR = \work\dll
  18. BINDIR = \work\bin
  19. LIBDIR = \work\lib
  20.  
  21. LIBS =
  22. CPP  =
  23. CFILES = cppsetup.c ifparser.c include.c main.c parse.c pr.c
  24.  
  25. all: $(PROG).$(TARGET) install
  26.  
  27. # common definitions
  28.  
  29. CC      = icc -q
  30. LINK    = icc -q
  31. IMPLIB  = implib /nologo
  32. RM      = del
  33. CP      = copy
  34. TOUCH   = touch
  35.  
  36. OBJS         = $(patsubst %.c,obj/%.obj,$(CFILES)) $(patsubst %.cpp,obj/%.obj,$(CPP)) 
  37. LINK_OBJS     = $(patsubst %.c,obj\\%.obj,$(CFILES)) $(patsubst %.cpp,obj\\%.obj,$(CPP))
  38.  
  39. # flags
  40.  
  41. CFLAGS        = -Gd+ -Se -Re -Gm+ -G4 -W3
  42. LFLAGS        = /NOLOGO /F /NOI /NOE
  43.  
  44. C_OPTIMIZE  = $(COMPILE_FLAGS) -O+ -Oi+
  45. L_OPTIMIZE  = $(LINK_FLAGS)
  46. LC_OPTIMIZE = -Ol+
  47.  
  48. BROWSE_FLAG  = -Fb+
  49. LIST_FLAGS   = -Ls+ -Le+ -Li+ -Lx+ -Ly+
  50.  
  51. # this is stupid, but ifdef somehow doesn't work
  52.  
  53. ifeq ($(DEBUG),-DDEBUG)
  54. CFLAGS += -O- -Oi- -Ti+ -DDEBUG
  55. LFLAGS += /DE
  56. endif
  57.  
  58. ifeq ($(TARGET),dll)
  59. CFLAGS += -Ge-
  60. else
  61. CFLAGS += -Ge+
  62. endif
  63.  
  64. #make an obj
  65.  
  66. obj/%.obj:: %.c
  67.     $(CC) $(CFLAGS) $(ADDITIONAL_CFLAGS) -Fo"$@" -c $<
  68.  
  69. obj/%.obj:: %.cpp
  70.     $(CC) -Tdp $(CFLAGS) $(ADDITIONAL_CFLAGS) -Fo"$@" -c $<
  71.  
  72. # make a dll 
  73.  
  74. $(PROG).dll: $(OBJS)
  75.     $(LINK) -b "$(LFLAGS)" -Fe "$(PROG).dll" $(LINK_OBJS) $(LIBS) $(PROG).def
  76.     $(IMPLIB) $(PROG).lib $(PROG).dll
  77.  
  78. # make an exe
  79.  
  80. $(PROG).exe: $(OBJS)
  81.     $(LINK) -b "$(LFLAGS)" -Fe "$(PROG).exe" $(LINK_OBJS) $(LIBS) $(PROG).def
  82.  
  83. debug:
  84.     make "DEBUG=-DDEBUG"
  85.  
  86. # make the modules
  87.  
  88. modules:
  89.     for %i in ( $(MODULES) ) do cd $(SOURCES)\\"%i" & make & if ERRORLEVEL 1 exit
  90.  
  91. debug_modules:
  92.     for %i in ( $(MODULES) ) do cd $(SOURCES)\\"%i" & make debug & if ERRORLEVEL 1 exit
  93.  
  94. clean_modules:
  95.     for %i in ( $(MODULES) ) do cd $(SOURCES)\\"%i" & make clean & if ERRORLEVEL 1 exit
  96.  
  97. depend_modules:
  98.     for %i in ( $(MODULES) ) do cd $(SOURCES)\\"%i" & make depend & if ERRORLEVEL 1 exit
  99.  
  100. depend:
  101.     makedep -p obj/ -I /work/sources $(CPP)
  102.  
  103. install:
  104. ifeq ($(TARGET),dll)
  105.     $(CP)    $(PROG).dll $(DLLDIR)
  106.     $(CP)    $(PROG).lib $(LIBDIR)
  107. else
  108.     $(CP)    $(PROG).exe $(BINDIR)
  109. endif
  110.  
  111. # clean: does NOT remove the compiled exe, dll, or lib in $(BINDIR), $(DLLDIR), or $(LIBDIR)
  112.  
  113. clean:
  114.     -$(RM) obj\\*.obj
  115.     -$(RM) $(PROG).lib
  116.     -$(RM) $(PROG).$(TARGET)
  117.  
  118.  
  119. # DO NOT DELETE
  120.  
  121. obj/main.obj: def.h E:\IBMCPP\INCLUDE/stdio.h Xosdefs.h Xfuncproto.h
  122. obj/main.obj: E:\IBMCPP\INCLUDE/ctype.h E:\IBMCPP\INCLUDE/sys/types.h
  123. obj/main.obj: E:\IBMCPP\INCLUDE/fcntl.h E:\IBMCPP\INCLUDE/sys/stat.h
  124. obj/main.obj: E:\IBMCPP\INCLUDE/stdlib.h E:\IBMCPP\INCLUDE/signal.h
  125. obj/main.obj: E:\IBMCPP\INCLUDE/stdarg.h imakemdep.h
  126.