Target environments for z/OS UNIX overview

The target environment support inIBM® Developer for z/OS® groups properties that define a development or deployment environment in your organization. You can capture different environments by creating target environment definitions on the Target Environments preference pages. You can apply these target environments to your z/OS UNIX subprojects to customize the edit, build, load, and debug settings for these subprojects.

For example, if your organization has many systems to which you deploy your applications and these applications must be built or loaded differently on each system, you might define a target environment for each system. In this case, there is a one-to-one relationship between a physical deployment system and a target environment definition. Each target environment defines development and deployment settings for a target system.

Target environment definitions do not have to correspond one-to-one to physical systems. In fact, you might have only one physical system where you load your applications, but multiple environments on that system that your application runs in. For these various environments, you might have to build and load your applications differently. In this case, you can create multiple target environment definitions to capture the different runtime environments for your application on that one system.

You can also use target environment support to define a common development environment for a team. If a group of developers who work on the same subproject must set up a similar development environment, for example, you can define a target environment that captures the common build and link options. You can then share that target environment definition with the project team. This common environment ensures that every developer on the team uses the same setup. It saves the individual effort that is required to replicate the setup in each developer's workspace. Each project group can define one or more target environments to share with the team.

The target environments feature provides a flexible framework that captures any unique and shareable application development setup that is required in your organization. You can share target environment definitions either by exporting and importing them into your workspace or by storing them in a common TPFSHARE location that all users reference.

You can specify any of the following options for a target environment:
  • Build and link options
  • Build mechanism
  • Editor options
  • Make options
  • Menu options
  • Target environment variables
You can include more than one set of build and link options and Make options in a target environment definition. This ability provides you with the flexibility to dynamically select different ways to build and load programs on the same target system. For example, you might want to test your applications in both the development and production environment before you deliver programs. You can define one target environment that contains two different sets of build and link options:
  • One set with debug options for testing and debugging programs thoroughly.
  • One set that does not contain the debug options to simulate the production environment.
When you are working on your subproject, you can dynamically select the build and link options that you want to use to build the subproject.

After the target environments are defined, you can apply them to your z/OS UNIX subprojects. A subproject can have more than one applicable target environment. For example, if your subproject must be loaded on more than one system and you have a target environment definition for each system, you can attach all of the applicable target environments to your subproject. You can select any applicable target environment as the current target environment for your subproject. The target environment definition contains customized properties that control the edit, build, load, and debug environment of the subproject and sets up the subproject to build the programs suitable for the environment you are targeting. You can switch the current target environment for your subproject to test your programs on the different target systems. Switching the target environment refreshes the subproject properties so that the subproject is set up to build for the new target system.