拡張機能「hspcmp」を使うとできます。
サンプルは、c:\hsp+<<HSPのバージョン>>\sample\misc\hspcmp.hsp
例:)HSP3.6ならc:\hsp36\sample\misc\hspcmp.hspになります。
一応そのサンプルをそのまま添付します。
#include "hspcmp.as"
;hspcmp.dllを呼び出して、HSPスクリプトのコンパイルと実行を行ないます
;使い方は、アイデア次第だと思いますが、知っておくと役立つ日がくるかもしれませんよ。
;以下のスクリプトは、「winobj.hsp」というスクリプトを実行する
;(スクリプトエディタで[F5]キーを押すのと同じ)サンプルです。
sdim mesbuf,$10000
sdim rtname,256
fname="winobj.hsp" ; スクリプトファイル名
objname="obj" ; オブジェクトファイル名
hsc_ini fname
hsc_objname objname
hsc_comp 0 ; コンパイル
res=stat:if res!=0 : dialog "ERROR" : goto *goerror
hsc3_getruntime rtname, objname ; ランタイム名を取得
if rtname="" : rtname="hsp3.exe"
debug_mode=0 ; デバッグウィンドウ表示フラグ
cmdexe = "\""+dir_exe+"\\"+rtname+"\" "+objname
hsc3_run cmdexe, debug_mode ; ランタイムを実行する
*goerror
hsc_getmes mesbuf
objmode 1
mesbox mesbuf,636,446,5
stop
実行したいHSPスクリプトファイル(サンプルではwinobj.hsp)をfnameに代入し、
hsp3のランタイムを使用してコンパイルする仕組みです。
ですので、ランタイムであるhsp3.exeが必須になります。これがないとできませんので
ご注意ください。また、このサンプルでは、デバックウィンドウが出るようになっています。
わからなければHSPスクリプトエディタを起動し、F1(Fn+F1)でヘルプを出して、検索欄に
「hspcmp」と入力することで命令一式を確認できます。