Anonymous avatar Anonymous committed 4193c7e

Adding proper generation of the ebin/ file.

Comments (0)

Files changed (5)

+all: app_init
 	erl -pa $(GETTEXT_EBIN) -make
+	$(MAKE) -f Makefile.init
 # Run this the very first time after creating the project
 	-mkdir ebin
 	-mkdir templates
 	-chmod +x ./
 	-(for i in \`ls dep/*\`; do cd \${i}; make; done)
-	cp src/{{appid}}.app.src ebin/{{appid}}.app 
+	$(MAKE) -f Makefile.init
 	$(MAKE) all
+MODULES_SRC := $(wildcard src/*.erl)
+MODULES     := $(MODULES_SRC:src/%.erl=%.erl)
+APP_SOURCES := $(wildcard src/*.app.src)
+APPSCRIPT = '$$vsn=shift; $$mods=""; while(@ARGV){ $$_=shift; s/^([A-Z].*)$$/\'\''$$1\'\''/; $$mods.=", " if $$mods; $$mods .= $$_; } while(<>) { s/%VSN%/$$vsn/; s/%MODULES%/$$mods/; print; }'
+init: $(APP_OBJECTS)
+ebin/ src/ Makefile
+	echo $(MODULES) 
+	perl -e $(APPSCRIPT) "$({{appid}}_vsn)" $(MODULES) < $< > $@
+%%% NB: DO CHANGES IN THE src/{{appid}}.app.src FILE!
+%%%  (and not in the: ebin/{{appid}}.app file, which is generated...)
 {application, {{appid}}, 
   {description,  "{{appid}} - bla bla..."},
+  {vsn, "%VSN%"},
   % The Module and Args used to start this application.
   {mod, { {{appid}}_app, []} },
   % All modules used by the application.
-   [{{appid}}
-    ,{{appid}}_app
-    ,{{appid}}_sup
-    ,{{appid}}_deps
-    ,{{appid}}_common
-    ,{{appid}}_inets
-    ,{{appid}}_web_index
-    ,{{appid}}_web_login
-    ,{{appid}}_web_logout
-    ,{{appid}}_web_auth
-   ]},
+   [%MODULES%]},
   % configuration parameters similar to those in the config file specified on the command line
   {env, [{http_server, inets}  % yaws | inets | mochiweb
 {template, "Emakefile",            "Emakefile"}.
 {template, "Makefile",             "Makefile"}.
+{template, "Makefile.init",        "Makefile.init"}.
+{template, "",               ""}.
 {template, "nitro.readme",         "README"}.
 {template, "LICENSE",              "LICENSE"}.
 {template, "",         ""}.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.