home *** CD-ROM | disk | FTP | other *** search
/ Netscape Plug-Ins Developer's Kit / Netscape_Plug-Ins_Developers_Kit.iso / source / Chap15 / npavi / MAKEFILE < prev    next >
Encoding:
Text File  |  1996-05-10  |  5.6 KB  |  225 lines

  1. ################################################################################
  2. #### make file for plugins ####
  3. #
  4. #  
  5. #  Setting in your environment or the command line will determine what you 
  6. #   build.  
  7. #
  8. #   JRI_ROOT    the root directory for this sdk (i.e. [drive]:\nspi30)
  9. #
  10. #   JDK_ROOT    the root for the java compiler (javac). If not specified
  11. #               defaults to JRI_ROOT
  12. #
  13. #   DEBUG       debug version   
  14. #
  15. #   i.e. 
  16. #   nmake -f makefile DEBUG=1 JDK_ROOT=c:\jdk
  17. #   
  18. # Will create four directory:
  19. #   objs        your objects and plugin
  20. #   classes     your java classes
  21. #   _gen        your headers from java classes
  22. #   _stubs      your stubs from java classes
  23. #   
  24. ################################################################################
  25.  
  26. # adding java classes and stubs generation rules
  27. .SUFFIXES : .class .h .java
  28.  
  29. !if !defined(JRI_ROOT)
  30. JRI_ROOT = c:\nspi30
  31. !endif
  32.  
  33. !if !defined(JDK_ROOT)
  34. !message assume jdk and jri root directories match
  35. JDK_ROOT = $(JRI_ROOT)
  36. !endif
  37.  
  38. !if "$(OS)" == "Windows_NT"
  39. NULL=
  40. !else
  41. NULL=nul
  42. !endif
  43.  
  44. TARGET  = npavi32
  45.  
  46. ################################################################################
  47. # Objects files
  48. #
  49. OBJS    = \
  50.         .\objs\avijava.obj \
  51.         .\objs\cavi.obj \
  52.         .\objs\npshell.obj \
  53.         .\objs\npwin.obj \
  54.         .\objs\plgwnd.obj \
  55.         .\objs\AviObserver.obj \
  56.         .\objs\AviPlayer.obj \
  57.         .\objs\netscape_plugin_Plugin.obj
  58.  
  59. CLASSES = \
  60.         .\classes\AviPlayer.class \
  61.         .\classes\AviObserver.class
  62.  
  63. GEN     = \
  64.         .\_gen\AviObserver.h \
  65.         .\_gen\AviPlayer.h \
  66.  
  67. STUBS   = \
  68.         .\_stubs\AviObserver.c \
  69.         .\_stubs\AviPlayer.c \
  70.  
  71. RES     = \
  72.         .\objs\$(TARGET).res
  73.  
  74. ZIP     = \
  75.         .\_gen\java_lang_Object.h \
  76.         .\_gen\netscape_plugin_Plugin.h \
  77.         .\_stubs\netscape_plugin_Plugin.c
  78.  
  79. ################################################################################
  80. # Libraries
  81. #
  82. LIBS    = \
  83.     WINMM.LIB \
  84.     kernel32.lib \
  85.     user32.lib \
  86.     gdi32.lib \
  87.     comdlg32.lib \
  88.     $(JRI_ROOT)\lib\jrt3221.lib 
  89.  
  90.  
  91. ################################################################################
  92. # Options and flags
  93. #
  94. CPP_INC     = /I $(JRI_ROOT)\include /I_gen
  95. CPP_OPTS    = /nologo /W3 /GX /Od /c
  96. CPP_DEFS    = /D "WIN32" /D "_WINDOWS" /D "_USRDLL" /D "_WINDLL" /D "_MBCS" /D "XP_PC"
  97.  
  98. JAVA_CLASSES  = -classpath $(JRI_ROOT)\classes\moz3_0.zip;.
  99.  
  100. LINK_FLAGS   = \
  101.         /nologo\
  102.         /entry:"DllEntryPoint"\
  103.         /subsystem:windows\
  104.         /dll\
  105.         /incremental:no\
  106.         /machine:I386\
  107.         /def:$(TARGET).def\
  108.         /out:.\objs\$(TARGET).dll\
  109.         /implib:.\objs\$(TARGET).lib
  110.  
  111. !if "$(DEBUG)" == "1"
  112.  
  113. CPP_OPTS    = /MDd /Zi $(CPP_OPTS)
  114. CPP_DEFS    = /D "_DEBUG" /D "STRICT" $(CPP_DEFS)
  115.  
  116. LINK_FLAGS   = $(LINK_FLAGS) /DEBUG
  117.  
  118. !else
  119.  
  120. CPP_OPTS    = /MD $(CPP_OPTS)
  121. CPP_DEFS    = /D "NDEBUG" $(CPP_DEFS)
  122.  
  123. !endif
  124.  
  125.  
  126. CPP_FLAGS   = $(CPP_OPTS) $(CPP_DEFS) $(CPP_INC)
  127. RC_OPTS     = /l 0x409
  128.  
  129.  
  130. ################################################################################
  131. # Tools
  132. #
  133. RSC     = rc.exe
  134. CPP     = cl.exe
  135. LINK    = link.exe
  136. JAVAC   = $(JDK_ROOT)\bin\javac.exe 
  137. JAVAH   = $(JRI_ROOT)\bin\javah.exe              # must be the jri version
  138.  
  139.  
  140. ################################################################################
  141. # Explicit Rules
  142. #
  143.  
  144. all : java .\objs\$(TARGET).dll
  145.  
  146. dirs : 
  147.     if not exist .\classes mkdir classes
  148.     if not exist .\_gen mkdir _gen
  149.     if not exist .\_stubs mkdir _stubs
  150.     if not exist .\objs mkdir objs
  151.  
  152. java : dirs $(CLASSES) $(ZIP) generate $(GEN) $(STUBS)
  153.     cd ..
  154.  
  155. generate : 
  156.     cd classes
  157.  
  158. .\objs\$(TARGET).dll : $(TARGET).def $(OBJS) $(RES)
  159.     $(LINK) @<<
  160.         $(LIBS) $(LINK_FLAGS) $(OBJS) $(RES)
  161. <<
  162.  
  163. # header and stubs files depending upon the zip file must be explicitly set
  164. .\_gen\netscape_plugin_Plugin.h : $(JRI_ROOT)\classes\moz3_0.zip
  165.     $(JAVAH) $(JAVA_CLASSES) -jri -d _gen netscape.plugin.Plugin
  166.  
  167. .\_stubs\netscape_plugin_Plugin.c : $(JRI_ROOT)\classes\moz3_0.zip
  168.     $(JAVAH) $(JAVA_CLASSES) -jri -stubs -d _stubs netscape.plugin.Plugin
  169.  
  170. .\_gen\java_lang_Object.h : $(JRI_ROOT)\classes\moz3_0.zip 
  171.     $(JAVAH) $(JAVA_CLASSES) -jri -d _gen java.lang.Object
  172.  
  173.  
  174. clean :
  175.         del ".\objs\$(TARGET).dll"
  176.         del ".\objs\$(TARGET).exp"
  177.         del ".\objs\$(TARGET).lib"
  178.         del ".\objs\$(TARGET).res"
  179.         del ".\objs\npshell.obj"
  180.         del ".\objs\npwin.obj"
  181.         del ".\objs\plgwnd.obj"
  182.         del ".\objs\avijava.obj"
  183.         del ".\objs\AviObserver.obj"
  184.         del ".\objs\AviPlayer.obj"
  185.         del ".\objs\cavi.obj"
  186.         del ".\objs\netscape_plugin_Plugin.obj"
  187.  
  188.         del ".\classes\AviPlayer.class"
  189.         del ".\classes\AviObserver.class"
  190.  
  191.         del ".\_gen\AviObserver.h"
  192.         del ".\_gen\AviPlayer.h"
  193.         del ".\_gen\java_lang_Object.h"
  194.         del ".\_gen\netscape_plugin_Plugin.h"
  195.  
  196.         del ".\_stubs\AviObserver.c"
  197.         del ".\_stubs\AviPlayer.c"
  198.         del ".\_stubs\netscape_plugin_Plugin.c"
  199.  
  200.  
  201. ################################################################################
  202. # Implicit Rules
  203. #
  204. .java{.\classes}.class:
  205.     $(JAVAC) $(JAVA_CLASSES) -d classes $<
  206.  
  207. {.\classes}.class{.\_gen}.h:
  208.     $(JAVAH) $(JAVA_CLASSES) -jri -d ..\_gen $(*B)
  209.  
  210. {.\classes}.class{.\_stubs}.c:
  211.     $(JAVAH) $(JAVA_CLASSES) -jri -stubs -d ..\_stubs $(*B)
  212.  
  213. {.\_stubs}.c{.\objs}.obj:
  214.     $(CPP) $(CPP_FLAGS) $< /Fo$*
  215.  
  216. .c{.\objs}.obj:
  217.     $(CPP) $(CPP_FLAGS) $< /Fo$*
  218.  
  219. .cpp{.\objs}.obj:
  220.     $(CPP) $(CPP_FLAGS) $< /Fo$*
  221.  
  222. .rc{.\objs}.res:
  223.     $(RC) $(RC_FLAGS) /fo $*.res $< 
  224.  
  225.