diff --git a/src/unix/vpkEnv.Mod b/src/unix/vpkEnv.Mod index 2cbfaf1..3abef4a 100644 --- a/src/unix/vpkEnv.Mod +++ b/src/unix/vpkEnv.Mod @@ -52,6 +52,41 @@ BEGIN Strings.Append(vpkSettings.vpkConfDir, path); END mkConfDirPath; +PROCEDURE mkBldDir*(VAR prefix: ARRAY OF CHAR): StringList.pstring; +VAR + builddir: StringList.pstring; + ln : INTEGER; +BEGIN + ln := 3 + Strings.Length(prefix) + Strings.Length(vpkSettings.vpkBldDir); + NEW(builddir, ln); + COPY(prefix, builddir^); + createIfNotThere(builddir^); + Strings.Append("/", builddir^); + Strings.Append(vpkSettings.vpkBldDir, builddir^); + createIfNotThere(builddir^); + Strings.Append("/", builddir^); + RETURN builddir +END mkBldDir; + +PROCEDURE mkdefBldDir*(): StringList.pstring; +VAR + builddir: StringList.pstring; + ln: INTEGER; + home: ARRAY 128 OF CHAR; +BEGIN + getHome(home); + ln := 2 + Strings.Length(home) + Strings.Length(vpkSettings.vpkPkgDir) + Strings.Length(vpkSettings.vpkBldDir); + NEW(builddir, ln); + COPY(home, builddir^); + Strings.Append("/", builddir^); + Strings.Append(vpkSettings.vpkPkgDir, builddir^); + createIfNotThere(builddir^); + Strings.Append("/", builddir^); + Strings.Append(vpkSettings.vpkBldDir, builddir^); + createIfNotThere(builddir^); + RETURN builddir +END mkdefBldDir; + PROCEDURE mkdefPkgDirPath*(VAR name, path: ARRAY OF CHAR); VAR home: ARRAY 128 OF CHAR; @@ -60,11 +95,11 @@ BEGIN COPY(home, path); Strings.Append("/", path); Strings.Append(vpkSettings.vpkPkgDir, path); - Strings.Append("/", path); createIfNotThere(path); + Strings.Append("/", path); Strings.Append(vpkSettings.vpkDepDir, path); - Strings.Append("/", path); createIfNotThere(path); + Strings.Append("/", path); Strings.Append(name, path); createIfNotThere(path); Strings.Append("/", path); @@ -82,21 +117,6 @@ BEGIN Strings.Append("/", path); END mkPkgDirPath; -PROCEDURE mkBldDir*(VAR prefix: ARRAY OF CHAR): StringList.pstring; -VAR - builddir: StringList.pstring; - ln : INTEGER; -BEGIN - ln := 3 + Strings.Length(prefix) + Strings.Length(vpkSettings.vpkBldDir); - NEW(builddir, ln); - COPY(prefix, builddir^); - createIfNotThere(builddir^); - Strings.Append("/", builddir^); - Strings.Append(vpkSettings.vpkBldDir, builddir^); - createIfNotThere(builddir^); - Strings.Append("/", builddir^); - RETURN builddir -END mkBldDir; PROCEDURE mkCmd*(VAR p0, p1: ARRAY OF CHAR): StringList.pstring; VAR diff --git a/src/vipack.Mod b/src/vipack.Mod index dce3d0a..6a487eb 100644 --- a/src/vipack.Mod +++ b/src/vipack.Mod @@ -195,7 +195,13 @@ BEGIN opts.valOfOpt("-p", foptions, package); opts.valOfOpt("-P", foptions, prefix); + IF prefix = "" THEN + Out.String(" will use the default prefix location"); Out.Ln; + END; opts.valOfOpt("-t", foptions, pkgTree); + IF pkgTree = "" THEN + Out.String(" will use the default package tree location"); Out.Ln; + END; IF pkgTree # "" THEN vpkConf.setTreeDir(pkgTree) END; diff --git a/src/vpkInstaller.Mod b/src/vpkInstaller.Mod index 0093d49..0c29d3f 100644 --- a/src/vpkInstaller.Mod +++ b/src/vpkInstaller.Mod @@ -71,7 +71,11 @@ VAR builddir, cmd, srcPath: StringList.pstring; res: INTEGER; BEGIN - builddir := vpkEnv.mkBldDir(prefix); + IF prefix # "" THEN + builddir := vpkEnv.mkBldDir(prefix) + ELSE + builddir := vpkEnv.mkdefBldDir(); + END; depTree := resolve(package); IF a THEN ask END; i := 0;