| 
					
				 | 
			
			
				@@ -118,6 +118,7 @@ var createDefaults = function(amber_dir, finished_callback){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		'compile': [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		'compiled': [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		'program': undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		'output_dir': undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		'verbose': false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		'finished_callback': finished_callback 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -471,12 +472,15 @@ AmberC.prototype.category_export = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// export categories as .js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	async_map(defaults.compile, function(stFile, callback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		var category = path.basename(stFile, '.st'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		var stFilePath = path.dirname(stFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		var jsFilePath = defaults.output_dir; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (undefined === jsFilePath) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			jsFilePath = path.dirname(stFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		var jsFile = category + defaults.suffix_used + '.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		jsFile = path.join(stFilePath, jsFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		jsFile = path.join(jsFilePath, jsFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		defaults.compiled.push(jsFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		var jsFileDeploy = category + defaults.suffix_used + '.deploy.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		jsFileDeploy = path.join(stFilePath, jsFileDeploy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		jsFileDeploy = path.join(jsFilePath, jsFileDeploy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		console.log('Exporting ' + (defaults.deploy ? '(debug + deploy)' : '(debug)') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			+ ' category ' + category + ' as ' + jsFile 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -523,11 +527,15 @@ AmberC.prototype.verify = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 AmberC.prototype.compose_js_files = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var defaults = this.defaults; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if (undefined === defaults.program) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var programFile = defaults.program; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (undefined === programFile) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		self.optimize(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var program_files = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (undefined !== defaults.output_dir) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		programFile = path.join(defaults.output_dir, programFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if (0 !== defaults.libraries.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		console.log('Collecting libraries: ' + defaults.libraries); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -544,9 +552,9 @@ AmberC.prototype.compose_js_files = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		program_files.push(defaults.init); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	console.ambercLog('Writing program file: %s.js', defaults.program); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	console.ambercLog('Writing program file: %s.js', programFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var fileStream = fs.createWriteStream(defaults.program + defaults.suffix_used + '.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var fileStream = fs.createWriteStream(programFile + defaults.suffix_used + '.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	fileStream.on('error', function(error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		fileStream.end(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		console.ambercLog(error); 
			 |