Advertisement
ngc7293

Java Makefile

Feb 2nd, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 0.88 KB | None | 0 0
  1. MAINCLASS :=
  2.  
  3. # Execulables
  4. JAVAC := javac
  5. JAVA := java
  6. JDB := jdb
  7. JAVADOC := javadoc
  8.  
  9. # Folders
  10. SRCDIR := src/
  11. BINDIR := bin/
  12. DOCDIR := doc/
  13.  
  14. # All folders under SRCDIR are packages
  15. PACKAGES := $(sort $(dir $(wildcard $(SRCDIR)*/)))
  16.  
  17. SRCS := $(foreach sdir,$(PACKAGES),$(wildcard $(sdir)*.java))
  18. BINS := $(patsubst $(SRCDIR)%.java,$(BINDIR)%.class,$(SRCS))
  19.  
  20. all: $(BINS)
  21.  
  22. $(BINDIR)%.class: $(SRCDIR)%.java
  23.     @echo $(subst /,.,$(patsubst $(SRCDIR)%.java,%,$<))
  24.     @mkdir -p $(BINDIR)
  25.     @$(JAVAC) -classpath $(SRCDIR) -d $(BINDIR) $<
  26.  
  27. doc: $(SRCS)
  28.     @echo Building Javadoc
  29.     @mkdir -p $(DOCDIR)
  30.     @$(JAVADOC) -classpath $(SRCDIR) -d $(DOCDIR) -html5 -quiet app game
  31.  
  32. clean:
  33.     @rm -rf $(BINDIR) $(DOCDIR)
  34.  
  35. # Run normally
  36. run:
  37.     @$(JAVA) -classpath $(BINDIR) $(MAINCLASS)
  38.  
  39. # Run in debugger
  40. debug:
  41.     @$(JDB) -sourcepath $(SRCDIR) -classpath $(BINDIR) $(MAINCLASS)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement