]> gitweb @ CieloNegro.org - Rakka.git/commitdiff
Working on rc.d friendliness...
authorPHO <pho@cielonegro.org>
Tue, 16 Feb 2010 10:30:01 +0000 (19:30 +0900)
committerPHO <pho@cielonegro.org>
Tue, 16 Feb 2010 10:30:01 +0000 (19:30 +0900)
GNUmakefile [new file with mode: 0644]
Main.hs
Makefile [deleted file]
cabal-package.mk [new file with mode: 0644]

diff --git a/GNUmakefile b/GNUmakefile
new file mode 100644 (file)
index 0000000..020afa2
--- /dev/null
@@ -0,0 +1,5 @@
+RUN_COMMAND = sudo ./dist/build/rakka/rakka -p 8989 -l DEBUG -v
+
+CONFIGURE_ARGS = --disable-optimization -fbuild-test-suite
+
+include cabal-package.mk
\ No newline at end of file
diff --git a/Main.hs b/Main.hs
index 46eb3e2ad4867ef7361cb8c681a7ac2ac10d7f41..736033feda5be8aef8976d81cb397705bed33187 100644 (file)
--- a/Main.hs
+++ b/Main.hs
@@ -41,7 +41,7 @@ data CmdOpt
     | OptUserName  String
     | OptGroupName String
     | OptLogLevel  Priority
-    | OptDisableStderrLog
+    | OptVerbose
     | OptRebuildIndex
     | OptHelp
     deriving (Eq, Show)
@@ -85,11 +85,11 @@ options = [ Option ['p'] ["port"]
                    (ReqArg (OptLogLevel . read) "LEVEL")
                    ("The lowest log level to show. (default: " ++ show defaultLogLevel ++ ")")
 
-          , Option [] ["disable-stderr-log"]
-                   (NoArg OptDisableStderrLog)
-                   "Disable logging to stderr."
+          , Option ['v'] ["verbose"]
+                   (NoArg OptVerbose)
+                   "Enable logging to stderr."
 
-          , Option [] ["rebuild-index"]
+          , Option ['r'] ["rebuild-index"]
                    (NoArg OptRebuildIndex)
                    "Rebuild the index database."
 
@@ -213,16 +213,16 @@ getLocalStateDir opts
 
 setupLogger :: [CmdOpt] -> IO ()
 setupLogger opts
-    = do let disableStderrLog = find (== OptDisableStderrLog) opts /= Nothing
-             logHandlers      = if disableStderrLog then
-                                    []
-                                else
-                                    [verboseStreamHandler stderr DEBUG]
-             logLevel         = fromMaybe defaultLogLevel
-                                $ do OptLogLevel l <- find (\ x -> case x of
-                                                                     OptLogLevel _ -> True
-                                                                     _             -> False) opts
-                                     return l
+    = do let verbose     = find (== OptVerbose) opts /= Nothing
+             logHandlers = if verbose then
+                               [verboseStreamHandler stderr DEBUG]
+                           else
+                               [] -- FIXME: enable file log
+             logLevel    = fromMaybe defaultLogLevel
+                           $ do OptLogLevel l <- find (\ x -> case x of
+                                                                OptLogLevel _ -> True
+                                                                _             -> False) opts
+                                return l
 
          logHandlers' <- sequence logHandlers
          updateGlobalLogger rootLoggerName (setHandlers logHandlers' . setLevel logLevel)
diff --git a/Makefile b/Makefile
deleted file mode 100644 (file)
index d7584a8..0000000
--- a/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-CABAL_FILE = Rakka.cabal
-GHC        = ghc
-EXECUTABLE = sudo ./dist/build/rakka/rakka -p 8989 -l DEBUG
-#EXECUTABLE = sudo ./dist/build/rakka/rakka -p 8989 -l DEBUG +RTS -S -A60M -RTS
-#EXECUTABLE = sudo ./dist/build/rakka/rakka -p 8989 -l DEBUG +RTS -p -RTS
-
-build: dist/setup-config Setup
-       $(MAKE) -C js $@
-       ./Setup build
-
-run: build
-       $(EXECUTABLE)
-
-rebuild-index: build
-       $(EXECUTABLE) --rebuild-index
-
-dist/setup-config: $(CABAL_FILE) configure Setup Rakka.buildinfo.in
-       ./Setup configure --disable-optimization -fbuild-test-suite
-#      ./Setup configure -fhardest-optimization
-#      ./Setup configure -fenable-profiling
-
-configure: configure.ac
-       autoconf
-
-Setup: Setup.hs
-       $(GHC) --make Setup
-
-clean:
-       $(MAKE) -C js $@
-       rm -rf dist Setup Setup.o Setup.hi
-       find . -name '*~' -exec rm -f {} \;
-
-install: build
-       sudo ./Setup install
-
-test: build
-       ./Setup test
-
-sdist: Setup
-       ./Setup sdist
-
-.PHONY: build run clean install doc sdist test
diff --git a/cabal-package.mk b/cabal-package.mk
new file mode 100644 (file)
index 0000000..d8bbaad
--- /dev/null
@@ -0,0 +1,95 @@
+# -*- makefile-gmake -*-
+#
+# Variables:
+#
+#   CONFIGURE_ARGS :: arguments to be passed to ./Setup configure
+#     default: --disable-optimization
+#
+#   RUN_COMMAND :: command to be run for "make run"
+#
+
+GHC      ?= ghc
+FIND     ?= find
+RM_RF    ?= rm -rf
+SUDO     ?= sudo
+AUTOCONF ?= autoconf
+HLINT    ?= hlint
+
+CONFIGURE_ARGS ?= --disable-optimization
+
+SETUP_FILE := $(wildcard Setup.*hs)
+CABAL_FILE := $(wildcard *.cabal)
+
+ifeq ($(shell ls configure.ac 2>/dev/null),configure.ac)
+  AUTOCONF_AC_FILE := configure.ac
+  AUTOCONF_FILE    := configure
+else
+  ifeq ($(shell ls configure.in 2>/dev/null),configure.in)
+    AUTOCONF_AC_FILE := configure.in
+    AUTOCONF_FILE    := configure
+  else
+    AUTOCONF_AC_FILE :=
+    AUTOCONF_FILE    :=
+  endif
+endif
+
+BUILDINFO_IN_FILE := $(wildcard *.buildinfo.in)
+BUILDINFO_FILE    := $(BUILDINFO_IN_FILE:.in=)
+
+all: build
+
+build: setup-config build-hook
+       ./Setup build
+
+build-hook:
+
+ifeq ($(RUN_COMMAND),)
+run:
+       @echo "cabal-package.mk: No command to run."
+       @echo "cabal-package.mk: If you want to run something, define RUN_COMMAND variable."
+else
+run: build
+       @echo ".:.:. Let's go .:.:."
+       $(RUN_COMMAND)
+endif
+
+setup-config: dist/setup-config setup-config-hook $(BUILDINFO_FILE)
+
+setup-config-hook:
+
+dist/setup-config: $(CABAL_FILE) Setup $(AUTOCONF_FILE)
+       ./Setup configure $(CONFIGURE_ARGS)
+
+$(AUTOCONF_FILE): $(AUTOCONF_AC_FILE)
+       $(AUTOCONF)
+
+$(BUILDINFO_FILE): $(BUILDINFO_IN_FILE) configure
+       ./Setup configure $(CONFIGURE_ARGS)
+
+Setup: $(SETUP_FILE)
+       $(GHC) --make Setup
+
+clean: clean-hook
+       $(RM_RF) dist Setup *.o *.hi .setup-config *.buildinfo
+       $(FIND) . -name '*~' -exec rm -f {} \;
+
+clean-hook:
+
+doc: setup-config
+       ./Setup haddock
+
+install: build
+       $(SUDO) ./Setup install
+
+sdist: setup-config
+       ./Setup sdist
+
+test: build
+       ./Setup test
+
+lint:
+       $(HLINT) . --report \
+               --ignore="Use string literal" \
+               --ignore="Use concatMap"
+
+.PHONY: build build-hook setup-config setup-config-hook run clean clean-hook install doc sdist test lint